快速业务通道

用Flash来实现游戏开发中的人物走动

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-07

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

一般的人物走动..都是由一组连续的动作组成...
像下面的图片: 用Flash来实现游戏开发中的人物走动 实际操作过程有两种~~一种是把图片分割成很多的小块
另一种是用mask只显示需要的区域~然后用移动图片的方式来处理..

我们先说说第一种方法..
拿上面的图片为例
一、把资源图片通过任何方式加载进swf并生成bitmap对象
二、根据单个动作的宽度和高度生成单独的bitmapData对象的数组
三、通用Timer或EntarFrame等方式循环显示每个动作
  1. //Copyright©2008.Http://L4cd.NetAllRightsReserved.
  2. package
  3. {
  4. importflash.display.Bitmap;
  5. importflash.display.BitmapData;
  6. importflash.display.Sprite;
  7. importflash.events.TimerEvent;
  8. importflash.geom.Matrix;
  9. importflash.geom.Rectangle;
  10. importflash.utils.Timer;
  11. [SWF(width="80",height="91",backgroundColor="#ffffff",frameRate="24")]
  12. publicclassRunextendsSprite
  13. {
  14. [Embed(source="0002.png")]
  15. privatevarPng002:Class;
  16. privatevarm:Bitmap;
  17. privatevarw:Number=80;//单动作宽度
  18. privatevarh:Number=91;//单动作高度
  19. privatevarc:Number=8;//动作数
  20. privatevarbmp:Array;
  21. publicfunctionRun()
  22. {
  23. m=newPng002()asBitmap;
  24. bmp=[];
  25. for(vari:uint=0;i<8;i++)
  26. {
  27. varbit:BitmapData=newBitmapData(80,91);
  28. varmx:Matrix=newMatrix();
  29. mx.tx=-i*w;
  30. bit.draw(m,mx,null,null,newRectangle(0,0,w,h));
  31. bmp.push(bit);
  32. }
  33. m.bitmapData=null
  34. addChild(m)
  35. vartimer:Timer=newTimer(50);
  36. timer.addEventListener(TimerEvent.TIMER,frame);
  37. timer.start();
  38. }
  39. privatefunctionframe(e:TimerEvent):void
  40. {
  41. bmp.push(bmp.shift());
  42. m.bitmapData=bmp[0];
  43. }
  44. }
  45. }
上面的代码运行结果如下: 关键词:人物

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号