用Flash来实现游戏开发中的人物走动
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-07
|
由于AS3的推出和网速的提高~~ 用Flash来实现网络游戏已经成为可能.. 今天来讨论一下一般RPG中常见的人物走动的实现方法...
一般的人物走动..都是由一组连续的动作组成... 像下面的图片:
实际操作过程有两种~~一种是把图片分割成很多的小块 另一种是用mask只显示需要的区域~然后用移动图片的方式来处理..
我们先说说第一种方法.. 拿上面的图片为例 一、把资源图片通过任何方式加载进swf并生成bitmap对象 二、根据单个动作的宽度和高度生成单独的bitmapData对象的数组 三、通用Timer或EntarFrame等方式循环显示每个动作
- //Copyright©2008.Http://L4cd.NetAllRightsReserved.
- package
- {
- importflash.display.Bitmap;
- importflash.display.BitmapData;
- importflash.display.Sprite;
- importflash.events.TimerEvent;
- importflash.geom.Matrix;
- importflash.geom.Rectangle;
- importflash.utils.Timer;
-
- [SWF(width="80",height="91",backgroundColor="#ffffff",frameRate="24")]
- publicclassRunextendsSprite
- {
- [Embed(source="0002.png")]
- privatevarPng002:Class;
- privatevarm:Bitmap;
- privatevarw:Number=80;//单动作宽度
- privatevarh:Number=91;//单动作高度
- privatevarc:Number=8;//动作数
- privatevarbmp:Array;
- publicfunctionRun()
- {
- m=newPng002()asBitmap;
- bmp=[];
- for(vari:uint=0;i<8;i++)
- {
- varbit:BitmapData=newBitmapData(80,91);
- varmx:Matrix=newMatrix();
- mx.tx=-i*w;
- bit.draw(m,mx,null,null,newRectangle(0,0,w,h));
- bmp.push(bit);
- }
- m.bitmapData=null
- addChild(m)
- vartimer:Timer=newTimer(50);
- timer.addEventListener(TimerEvent.TIMER,frame);
- timer.start();
- }
- privatefunctionframe(e:TimerEvent):void
- {
- bmp.push(bmp.shift());
- m.bitmapData=bmp[0];
- }
- }
- }
上面的代码运行结果如下:
关键词:人物 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn
为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
|