ÕªÒª
¡¡¡¡Ò»¾Å¾Å°ËÄê,µÚÒ»¿îÍøÂçÓÎÏ·“ʯÆ÷ʱ´ú”µÇ̨ÁÁÏà¡£ËüµÄ³öÏÖÁ¢¿ÌÊܵ½ÖÚ¶àÍøÃñµÄÇàíù¡£ÐÎÐÎɫɫµÄÍøÂçÓÎÏ·Òò´ËÈçÓêºó´ºËñ°ãÓ¿³ö,ÍøÂçÓÎÏ·ÊÂÒµÈç»ðÈç²è!ÕôÕôÈÕÉÏ¡£
¡¡¡¡ÍøÂçÓÎÏ·µÄ³öÏÖ,ÎüÒýÁ˹úÄÚÍâÒ»´óÅúÈËԱǰÀ´Ñо¿¡£ÈçºÎÓªÔìÃÀÂÖÃÀ¾ÄµÄÓÎÏ·³¡¾°,Ìṩ¸øÍæ¼ÒÁ¼ºÃµÄ»¥¶¯¸ÐºÍ³Á½þ¸Ð,һʱ³ÉΪÁËÈÈÃÅ»°Ìâ¡£
¡¡¡¡ÓÎÏ·³¡¾°Óª½¨,Ò»ÖֱȽÏÁ÷Ðеļ¼Êõ¾ÍÊÇÈýάʵʱäÖȾ¼¼Êõ¡£¸Ã¼¼ÊõÖÆ×÷µÄÓÎÏ·,³¡¾°Ñ¤Àö,ÈËÎïÒ²¸öÐÔ»¯¡£µ«Ä¿Ç°µÄÈýάʵʱäÖȾÓÎÏ·ÒýÇæ,ÆÕ±éʹÓÃC++ÓïÑÔ¿ª·¢,¿ª·¢µÄÖÜÆÚ½Ï³¤,¿Í»§¶Ë±È½ÏÅÓ´ó(ÉÙÔò¼¸°ÙÕ×,´óÔòÉÏG),¿ª·¢ºÍά»¤¶¼ºÜÄÑ¡£
¡¡¡¡ÓëÉÏÃæÌá¼°µÄ´óÐÍÍøÂçÓÎÏ·Ïà·´,ÍøÂçÉÏ»¹ÓÐһЩСÓÎÏ·,ÕâЩСÓÎÏ·¶àΪflashÖÆ×÷µÄ¡£ÖÆ×÷ÕâÀàÓÎÏ·µÄÈ˺ܶà,ÔÒòÊÇnashÖÆ×÷±È½Ï¼òµ¥,²»ÂÛ±à³Ì³õѧÕßÉõÖÁ²»»á±à³ÌµÄÈ˶¼¿ÉÒÔÖÆ×÷¡£ÕâÀàÓÎÏ·¶àΪ¶þάµÄ½çÃæ,ÒòΪ´¿nashÊDz»Ö§³ÖÈýάʵʱäÖȾ¹¦Äܵġ£
¡¡¡¡Òò´Ë,±ÊÕß²úÉúÁËÒ»¸öÏë·¨,¼´ÀûÓÃnashÇ¿´óµÄͼÏñ´¦Àí¹¦ÄÜ,²¢ÔÚÕâµÄ»ù´¡ÉÏÔö¼ÓÈýάʵʱäÖȾ¹¦ÄÜ,¿ª·¢Ò»¸ö»ùÓÚflashµÄÈýάÓÎÏ·ÒýÇæ,½ø¶øÀûÓÃnashÀ´¿ª·¢´óÐ͵ÄÍøÂçÓÎÏ·¡£
¡¡¡¡±¾ÎľÍÊǽéÉÜÕâÒ»Ïë·¨µÄʵÏÖ¹ý³Ì¡£±¾ÎÄÏȽéÉÜÁËActionscriPtÓïÑÔºÍÈýάͼÏñѧµÄһЩ»ù±¾ÖªÊ¶,ËæºóÏêϸ½éÉÜ»ùÓÚfiashÈýάÒýÇæµÄ²¿·Ö¹¦ÄܵÄʵÏÖ,°üÀ¨ÈýάÈËÎﶯ»µÄʵÏÖºÍÈýάÎïÌåʰȡµÄʵÏÖ¡£×îºó,±¾ÎÄ»¹½éÉÜÒ»¿îÎÒÃÇÀûÓøÃÒýÇæ¶þ´Î¿ª·¢³öµÄB/sģʽµÄflash3DÍøÂçÓÎÏ·,½éÉÜÍøÂçÓÎÏ·ÖÖµÄÒ»Ì×¹¦ÄÜÇ¿´ó!
¡¡¡¡Î¬»¤¼òµ¥µÄÍøÂçÓÎÏ·ÈÎÎñϵͳ¡£
¡¡¡¡¹Ø¼ü´Ê£ºFlashÓÎÏ·,ÓÎÏ·ÒýÇæ,ʵʱäÖȾ,ÈÎÎñϵͳ
Abstract
¡¡¡¡In 1998, first online RPG Game "Stone Age" showed up. People who play this game loved it very much. It soon won many people's heart. Only one year later, the concept of online game burst, more and more online games appeared on the net.People enjoyed this kind of game crazily.
¡¡¡¡Since then, many researchers began to make research on how to build up a pretty scene for the game. One advanced tech was called 3D real-time rending.
¡¡¡¡Developing 3D real-time rending game engine, in most of time we use C++ language. So we need some professional developer, and the develop life circle will be long, the size of the client side will be large, which can range from hundreds M to some Cx Both the development and maintenance of client side are difficult.
¡¡¡¡On the contrary to those large-scale online RPG game, there are some little-scale game on the net. They usually developed by flash. Many people love to and also are good at developing this kind of game, for it's easy developing with flash tool. The interface of such game often built with images. Because flash has no built-in 3D functions.
¡¡¡¡So here comes an idea. We can build up some 3D functions based on flash's image processing ability, and further develop a 3D real-time rending flash engine, at last develop a flash based online RPG game.
¡¡¡¡In this article, we discuss how to fulfill this dream in detail. First we will introduce some basic knowledge about flash's image processing ability, and then we will introduce some basic knowledge about 3D real-time rending. After that, we will carefully describe some function in our game engine, for example, 3D animation, 3D model fetch. In the end, we discuss a robust RPG game developed base on this engine, also we are going to show our powerful mission system.
¡¡¡¡Keywords: Flash game, Real-time 3D rending, Mission system
¡¡¡¡Ò»¾Å¾Å°ËÄ꣬µÚÒ»¿îÍøÂçÓÎÏ·“ʯÆ÷ʱ´ú”µÇ̨ÁÁÏà¡£ËüµÄ³öÏÖÁ¢¿ÌÊܵ½ÖÚ¶àÍøÃñµÄÇàíù¡£ÐÎÐÎɫɫµÄÍøÂçÓÎÏ·Òò´ËÈçÓêºó´ºËñ°ãÓ¿³ö£¬ÍøÂçÓÎÏ·ÊÂÒµÈç»ðÈç²è¡¢ÕôÕôÈÕÉÏ¡£
¡¡¡¡ÍøÂçÓÎÏ·±¸ÊÜÇàíù£¬ÆäÖÐÓеÄÁ½¸öºÜ´óµÄÔÒò:
¡¡¡¡ÆäÒ»£¬ÍøÂçÓÎÏ·ÓÐ×Å×ÀÃæÓÎÏ·ÎÞ·¨±ÈÄâµÄ»¥¶¯ÐÔ¡£Íæ¼Ò¿ÉÒÔ¸úÐíÐí¶à¶à¡¢ÈÏʶ»ò²»ÈÏʶµÄÍøÃñÒ»ÆðÓÎÍæ£¬×÷ÈÎÎñ£¬´Ó¶ø»ñµÃÒ»ÖÖ±»ÈÏͬ¸ÐºÍ×ÔÎÒ¼ÛÖµ¸Ð¡£
¡¡¡¡Æä¶þ£¬ÍøÂçÓÎÏ·µÄ½çÃæÍùÍùÊÇһЩ¿Æ»Ã¡¢Ñ¤Àõij¡¾°¡£ÍøÃñÓÎÍæÆäÖУ¬»á²úÉúÒ»ÖÖÃλá¢ÍÑÀëÏÖʵµÄ¸Ð¾õ£¬Äܹ»´ó´óÊæ»º¹¤×÷¡¢Éú»î´øÀ´µÄѹÁ¦¡£
¡¡¡¡ÕýÊÇÓÉÓÚÕâÖÖÐèÇó£¬ÎüÒýÁ˹úÄÚÍâÒ»´óÅúÈËԱǰÀ´Ñо¿ÍøÂçÓÎÏ·³¡¾°µÄÓª½¨¼¼Êõ¡£ÈçºÎÓªÔìÃÀÂÖÃÀ¾ÄµÄÓÎÏ·³¡¾°£¬Ìṩ¸øÍæ¼ÒÁ¼ºÃµÄ»¥¶¯¸ÐºÍ³Á½þ¸Ð£¬Ò»Ê±³ÉΪÁËÈÈÃÅ»°Ìâ¡£
¡¡¡¡ÔçÆÚµÄ³¡¾°Óª½¨£¬´ó¶àʹÓõÄÊÇα3DµÄ¼¼Êõ¡£Æä¼¼ÊõÌØµãÊÇ:ÀûÓÃһЩ±ÆÕæµÄͼÏñ×÷Ϊ³¡¾°µÄ±³¾°ºÍµØÃæ¡£ÈËÎﶯ»·½Ã棬ÔòÊÇÀûÓÃÏà¹ØµÄÈí¼þ(Èçmaya,3dmax)ÖÆ×÷³öÈËÎïij¸öÔ˶¯¼¸¸ö¹Ø¼üÖ¡µÄͼÏñ£¬È»ºóÀûÓÃÊÓ¾õÔÝÁô£¬Á¬Ðø²¥·Å¹Ø¼ü֡ͼÏñ£¬ÊµÏÖÈËÎïÔ˶¯µÄÊÓ¾õЧ¹û¡£
¡¡¡¡¸Ã¼¼ÊõʵÏֵij¡¾°ÕæÊµ¸Ð²»Ç¿¡£Ö÷È˹«µÄ¶¯×÷Ò²±È½Ï¼òµ¥ºÍµ¥Ò»£¬·ñÔò¹ý¶àµØÌùͼ»áÓ°ÏìϵͳµÄÐÔÄÜ¡£µ±ÍøÃñ¶ÔÍøÂçÓÎÏ·½¥½¥Ï°¹ß£¬ÐÂÏʸн¥½¥ÍÊȥʱ£¬ÍøÃñ¾Í¿ªÊ¼Ï£Íû³¡¾°µÄÓª½¨¸ü¼ÓÕæÊµ£¬Ö÷È˹«µÄ¶¯×÷¸ü¼Ó·á¸»¡¢×ÔÈ»£¬¸üÄÜÌåÏÖÖ÷È˹«µÄÐÔ¸ñÌØµã¡£
¡¡¡¡ÒªÊµÏÖÒÔÉÏÐèÇ󣬾ͱØÐëÒýÈë3DµÄ¸ÅÄ½«Ô±¾Ö»Ó¦ÓÃÔÚ×ÀÃæÏµÍ³ÖеÄ3D¼¼Êõ°áÉÏÍøÂç¡£
¡¡¡¡Ä¿Ç°£¬¹úÍâÖÆ×÷Á˼¸¿îÓÅÐã3DµÄÍøÂçÓÎÏ·£¬Èç“ÌìÌÔ¡¢“ħÊÞÊÀ½ç”¡¢“ÅÜÅÜ¿¨¶¡³µ”µÈ¡£¿ª·¢ÕâÀàµÄÍøÂçÓÎÏ·£¬Ç°ÆÚÒ»°ã¶¼ÐèÒªÏÈ¿ª·¢×¨ÒµµÄ3DÓÎÏ·ÒýÇæ£¬È»ºó»ùÓÚ3DÓÎÏ·ÒýÇæ¶þ´Î¿ª·¢¡£
¡¡¡¡Ä¿Ç°±È½ÏÁ÷ÐÐʹÓÃC\C++À´¿ª·¢3DÓÎÏ·ÒýÇæ¡£ÖÚËùÖÜÖª£¬C\C++±¾Éí²»ÌṩÈκÎ2DͼÏñ´¦Àí»òÊÇ3DÎïÌåäÖȾµÄ¹¦ÄÜ¡£ÒªÏ뿪·¢ÕâЩÏà¹Ø¹¦ÄÜ»òÊÇ´ÓÍ·¿ªÊ¼£¬»òÊÇÀûÓõÚÈý·½¿âº¯Êý¡£Òò´Ë£¬¿ª·¢¹ý³ÌÐèҪרҵµÄ³ÌÐò¿ª·¢ÈËÔ±£¬¿ª·¢µÄÖÜÆÚ½Ï³¤£¬¿Í»§¶Ë±È½ÏÅÓ´ó¡£ÉÙÔò¼¸°ÙÕ×£¬´óÔòÉÏG£¬¿ª·¢ºÍά»¤¶¼ºÜ¼èÄÑ¡£
¡¡¡¡ÓëÉÏÃæÌá¼°µÄ¸´ÔÓµÄÒýÇæ¿ª·¢Ïà·´£¬ÍøÂçÉÏ»¹ÓÐһЩСÓÎÏ·£¬ÕâЩСÓÎÏ·¶àΪflashÖÆ×÷µÄ¡£ÖÆ×÷ÕâÀàÓÎÏ·µÄÈ˺ܶ࣬ÔÒòÊÇflashÌṩÁËÇ¿´óµÄͼÏñ´¦ÀíµÄ¹¦ÄÜ£¬²¢ÇÒ½Ó¿Ú¼òµ¥£¬²»ÂÛ±à³Ì³õѧÕßÉõÖÁ²»»á±à³ÌµÄÈ˶¼¿ÉÒÔÀûÓÃflashÖÆ×÷ÓÎÏ·¡£ÕâÀàÓÎÏ·»ù±¾Ã»ÓÐÈýά½çÃæµÄ£¬ÒòΪ´¿flashÊDz»Ö§³ÖÈýάʵʱäÖȾ¹¦Äܵġ£
¡¡¡¡Òò´Ë£¬±ÊÕß²úÉúÁËÒ»¸öÏë·¨£¬¼´ÀûÓÃflashÇ¿´óµÄͼÏñ´¦Àí¹¦ÄÜ£¬²¢ÔÚÕâµÄ»ù´¡ÉÏÔö¼ÓÈýάʵʱäÖȾ¹¦ÄÜ£¬¿ª·¢Ò»¸ö»ùÓÚflashµÄÈýάÓÎÏ·ÒýÇæ£¬½ø¶øÀûÓÃflashÀ´¿ª·¢´óÐ͵ÄÍøÂçÓÎÏ·¡£
¡¡¡¡±¾ÕÂÏÂÎľÍÊÇÒª¼òÒª½éÉÜÒ»ÏÂflash¿ª·¢µÄÇ¿´óÓïÑÔActionscript3.0µÄͼÏñ´¦ÀíÌØÐÔ£¬½Ó׎éÉÜÈýά¼¼ÊõÖеÄһЩ»ù´¡¼¼Êõ¡£ÎªÏÂÒ»Õ½éÉÜflashÈýάÒýÇæ×÷ÆÌµæ¡£
¡¡¡¡ActionscriptÊÇflash playerÔËÐл·¾³Ïµıà³ÌÓïÑÔ¡£ËüÔÚflash³ÌÐòÖÐÌṩÁËÓû§½»»¥£¬Êý¾Ý°ó¶¨µÈһϵÁÐÌØÐÔ¡£ActionscriptÊÇÔËÐÐÔÚActionScriptÐéÄâ»ú(AVM)ÉÏ¡£ActionScriptÐéÄâ»úÊÇflash playerµÄÒ»²¿·Ö¡£Actionscript´úÂë¾¹ýÖîÈçflex builderÕâÑùµÄ±àÒëÆ÷±àÒë±ä³É×Ö½ÚÂë¡£Ëæºó±»Ç¶Èëµ½swfÎļþÖУ¬×îºóÊÇÔÚflash playerÒ²¾ÍÊÇflashÔËÐл·¾³ÏÂÖ´ÐС£
¡¡¡¡ÏÔʾ¶ÔÏóÔÚActionscript3.0³ÌÐòÖÐÓû§¿ÉÒÔ¿´¼ûµÄ¸÷Öֿؼþ¡£Actionscript3.0²»½öΪ³ÌÐòÔ±ÌṩÁËÐÎʽ·á¸»¶àÑùµÄ¿Ø¼þ£¬»¹½¨Á¢ÁËÇ¿´óµÄÔËÐлúÖÆ£¬À´±£Ö¤´úÂëµÄ¼òµ¥ºÍ¹¦ÄܵÄÇ¿´ó¡£
ÀûÓÃFLASH¿ª·¢Èýά´óÐÍÓÎÏ·£º
Ѱ±¦ÓÎÏ·¿ªÊ¼Ç°³¡¾°Çé¿ö
Ѱ±¦ÓÎÏ·¿ªÊ¼ºó³¡¾°Çé¿ö
Ŀ¼
¡¡¡¡ÕªÒª
¡¡¡¡Abstract
¡¡¡¡µÚ1Õ Ð÷ÂÛ
¡¡¡¡¡¡¡¡1.1 ¿ÎÌâ±³¾°
¡¡¡¡¡¡¡¡1.2 Flash actionscriptͼÏñ´¦Àí¹¦Äܼò½é
¡¡¡¡¡¡¡¡¡¡¡¡1.2.1 Actionscript3.0¼ò½é
¡¡¡¡¡¡¡¡¡¡¡¡1.2.2 ÏÔʾ¶ÔÏó
¡¡¡¡¡¡¡¡¡¡¡¡1.2.3 ÏÔʾ¶ÔÏóÁбí
¡¡¡¡¡¡¡¡¡¡¡¡1.2.4 ºËÐĵÄÏÔʾ¶ÔÏó
¡¡¡¡¡¡¡¡¡¡¡¡1.2.5 ÏÔʾ¶ÔÏóµÄ¹ÜÀí
¡¡¡¡¡¡¡¡¡¡¡¡1.2.6 ÏÔʾ¶ÔÏóµÄʼþ´¦Àí
¡¡¡¡¡¡¡¡1.3 3DͼÐμ¼Êõ¼ò½é
¡¡¡¡¡¡¡¡¡¡¡¡1.3.1 Èýά¿Õ¼äµÄ¼¸ºÎ±ä»»
¡¡¡¡¡¡¡¡¡¡¡¡1.3.2 Èýά¹Û²ìÁ÷Ë®Ïß
¡¡¡¡¡¡¡¡1.4±¾ÕÂС½á
¡¡¡¡µÚ2Õ ÓÎÏ·ÒýÇæÖÐÈËÎﶯ»µÄʵÏÖ
¡¡¡¡¡¡¡¡2.1 ¸ÅÊö
¡¡¡¡¡¡¡¡2.2 ²ã´Î½á¹¹Ä£ÐÍ
¡¡¡¡¡¡¡¡2.3 ¹¹½¨ÊÀ½ç×ø±êϵ³¡¾°
¡¡¡¡¡¡¡¡2.4 ÕÕÏà»úµÄuvn¹Û²ì×ø±êϵͳ
¡¡¡¡¡¡¡¡2.5 ÊÀ½ç×ø±êϵÏò¹Û²ì×ø±êϵת»»
¡¡¡¡¡¡¡¡2.6 ͶӰ±ä»»
¡¡¡¡¡¡¡¡2.7 ¹Û²ì×ø±êϵÏò¹æ·¶»¯Éè±¸×ø±ê
¡¡¡¡¡¡¡¡2.8 ¹æ·¶»¯Éè±¸×ø±êÓ³Éäµ½Éè±¸×ø±ê
¡¡¡¡¡¡¡¡2.9 ÕÚµ²¹ØÏµ´¦Àí
¡¡¡¡¡¡¡¡2.10 ²Ã¼ôµÄ´¦Àí
¡¡¡¡¡¡¡¡2.11 ±¾ÕÂС½á
¡¡¡¡µÚ3Õ ÓÎÏ·ÒýÇæÖÐÈýάÎïÌåʰȡµÄʵÏÖ
¡¡¡¡¡¡¡¡3.1 ÈýάÎïÌåʰȡ¹¦ÄÜʵÏÖ
¡¡¡¡¡¡¡¡¡¡¡¡3.1.1 ÈýάÎïÌåʰȡ¼¼Êõ¼ò½é
¡¡¡¡¡¡¡¡¡¡¡¡3.1.2 ·½°¸¸ÅÊö
¡¡¡¡¡¡¡¡¡¡¡¡3.1.3 ¿Õ¼ä·Ö¸î
¡¡¡¡¡¡¡¡¡¡¡¡3.1.4 ÈýάÎïÌåËùÔÚ¿Õ¼äµÄÈ·Á¢
¡¡¡¡¡¡¡¡¡¡¡¡3.1.5 µã»÷ÉäÏßµÄÈ·Á¢
¡¡¡¡¡¡¡¡¡¡¡¡3.1.6 ÉäÏß´©Ô½¿Õ¼äµÄÈ·Á¢
¡¡¡¡¡¡¡¡¡¡¡¡3.1.7 ÉäÏßÓëÈýάÎïÌåÇó½»Åж϶þ
¡¡¡¡¡¡¡¡¡¡¡¡3.1.8 ½»µãÎÆÀíÖµµÄÅжÏ
¡¡¡¡¡¡¡¡3.2 ÈýάÎïÌåʰȡ¹¦ÄÜЧ¹ûͼ¶þ
¡¡¡¡¡¡¡¡3.3 ±¾ÕÂС½á
¡¡¡¡µÚ4Õ »ùÓÚÓÎÏ·ÒýÇæ¿ª·¢µÄÓÎÏ·
¡¡¡¡¡¡¡¡4.1 ÓÎÏ·¼Ü¹¹¸ÅÊö
¡¡¡¡¡¡¡¡4.2 ÓÎÏ·ÖÐѰ±¦ÈÎÎñϵͳµÄʵÏÖ
¡¡¡¡¡¡¡¡¡¡¡¡4.2.1 Ѱ±¦ÓÎÏ·¸ÅÊö
¡¡¡¡¡¡¡¡¡¡¡¡4.2.2 ´«Í³µÄʵÏÖ·½·¨
¡¡¡¡¡¡¡¡¡¡¡¡4.2.3 ¸Ä½ø·½°¸
¡¡¡¡¡¡¡¡¡¡¡¡4.2.4 Æ½Ãæ·Ö¿é
¡¡¡¡¡¡¡¡¡¡¡¡4.2.5 ·Ö¿é¿É·ÅÖÃÐÔÅжÏ
¡¡¡¡¡¡¡¡¡¡¡¡4.2.6 Ѱ±¦ÓÎϷЧ¹û
¡¡¡¡¡¡¡¡4.3 ±¾ÕÂС½á
¡¡¡¡µÚ5Õ ×ܽáºÍÕ¹Íû
¡¡¡¡¡¡¡¡5.1 ×ܽá
¡¡¡¡¡¡¡¡5.2 Õ¹Íû
¡¡¡¡²Î¿¼ÎÄÏ×
¡¡¡¡ÖÂл
¡¡¡¡×÷Õß¼ò½é
£¨ÈçÄúÐèÒª²é¿´±¾Æª±ÏÒµÉè¼ÆÈ«ÎÄ£¬ÇëÄúÁªÏµ¿Í·þË÷È¡£©