当前位置:软件学习 > Flash >>

as 3.0游戏开发中的人物走动实现方法

由于AS3的推出和网速的提高~~
用Flash来实现网络游戏已经成为可能..
今天来讨论一下一般RPG中常见的人物走动的实现方法...

一般的人物走动..都是由一组连续的动作组成...
像下面的图片:

实际操作过程有两种~~一种是把图片分割成很多的小块
另一种是用mask只显示需要的区域~然后用移动图片的方式来处理..

我们先说说第一种方法..
拿上面的图片为例
一、把资源图片通过任何方式加载进swf并生成bitmap对象
二、根据单个动作的宽度和高度生成单独的bitmapData对象的数组
三、通用Timer或EntarFrame等方式循环显示每个动作
  1. //Copyright © 2008. Http://L4cd.Net All Rights Reserved.   
  2. package  
  3. {   
  4.     import flash.display.Bitmap;   
  5.     import flash.display.BitmapData;   
  6.     import flash.display.Sprite;   
  7.     import flash.events.TimerEvent;   
  8.     import flash.geom.Matrix;   
  9.     import flash.geom.Rectangle;   
  10.     import flash.utils.Timer;   
  11.        
  12.     [SWF(width="80", height="91", backgroundColor="#ffffff", frameRate="24")]   
  13.     public class Run extends Sprite  
  14.     {   
  15.         [Embed(source="0002.png")]   
  16.         private var Png002:Class;   
  17.         private var m:Bitmap;   
  18.         private var w:Number = 80;//单动作宽度   
  19.         private var h:Number = 91;//单动作高度   
  20.         private var c:Number = 8;//动作数   
  21.         private var bmp:Array;   
  22.         public function Run()   
  23.         {   
  24.             m = new Png002() as Bitmap;   
  25.             bmp = [];   
  26.             for(var i:uint=0;i<8;i++)   
  27.             {   
  28.                 var bit:BitmapData = new BitmapData(80,91);   
  29.                 var mx:Matrix = new Matrix();   
  30.                 mx.tx = -i*w;   
  31.                 bit.draw(m,mx,null,null,new Rectangle(0,0,w,h));   
  32.                 bmp.push(bit);   
  33.             }   
  34.             m.bitmapData = null  
  35.             addChild(m)   
  36.             var timer:Timer = new Timer(50);   
  37.             timer.addEventListener(TimerEvent.TIMER,frame);   
  38.             timer.start();   
  39.         }   
  40.         private function frame(e:TimerEvent):void  
  41.         {   
  42.             bmp.push(bmp.shift());   
  43.             m.bitmapData = bmp[0];   
  44.         }   
  45.     }   
  46. }  

上面的代码运行结果如下:

补充:flash教程,As3.0
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,