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

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

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

开发中的人物走动实现方法-unity3d 实现人物走动">

实际操作过程有两种~~一种是把图片分割成很多的小块
另一种是用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. }  

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

时间: 2024-10-30 15:38:14

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

C#在Unity游戏开发中进行多线程编程的方法_C#教程

在这之前,有很多人在质疑Unity支不支持多线程,事实上Unity是支持多线程的.而提到多线程就要提到Unity非常常用的协程,然而协程并非真正的多线程.协程其实是等某个操作完成之后再执行后面的代码,或者说是控制代码在特定的时机执行.而多线程在Unity渲染和复杂逻辑运算时可以高效的使用多核CPU,帮助程序可以更高效的运行.本篇主要介绍在Unity中如何使用多线程. 首先引入C#中使用多线程的类库 using System.Threading; 创建线程实例的四种方式 一.线程执行无参方法 构造

Android 游戏开发中绘制游戏触摸轨迹的曲线图_Android

       本篇文章主要来讲解怎样绘制游戏触摸轨迹的曲线图.        我们在onTouchEvent方法中,可以获取到触摸屏幕时手指触摸点的x.y坐标,如何用这些点形成一条无规则轨迹并把这条无规则轨迹曲线显示在屏幕上就是本篇文章的主旨内容.        Android Path类        Android提供了一个Path类 , 顾名思义这个类可以设置曲线路径轨迹.任何无规则的曲线实际上都是由若干条线段组成,而线段的定义为两点之间最短的一条线.path类就 可以记录这两点之间的轨迹

Android 重力传感器在游戏开发中的应用_Android

      手势操作可以说是智能手机的一种魅力所在,前两节给大家讲解了两种有趣的手势操作,将它们置于游戏当中,大大提升了游戏的可玩性和趣味性.本节将继续介绍智能手机的另一种神奇之处:传感器.        一.何为传感器        所谓传感器就是能够探测如光.热.温度.重力.方向等等的装置.        二.Android提供了哪些传感器        1.加速度传感器(重力传感器)        2.陀螺仪传感器        3.光传感器        4.恒定磁场传感器       

Android 重力传感器在游戏开发中的应用

手势操作可以说是智能手机的一种魅力所在,前两节给大家讲解了两种有趣的手势操作,将它们置于游戏当中,大大提升了游戏的可玩性和趣味性.本节将继续介绍智能手机的另一种神奇之处:传感器. 一.何为传感器 所谓传感器就是能够探测如光.热.温度.重力.方向等等的装置. 二.Android提供了哪些传感器 1.加速度传感器(重力传感器) 2.陀螺仪传感器 3.光传感器 4.恒定磁场传感器 5.方向传感器 6.恒定的压力传感器 7.接近传感器 8.温度传感器 今天我们给大家介绍的是游戏开发中最最常见的,用到的频

监听器在游戏开发中的应用----消息回调

我一向是不太喜欢给一些东西强加上个名字.但为了随波逐流,我还是这样做了. 在我们的游戏开发中,通常会遇到两个模块之间的通信. 回调估计是最常用的方式了. 回调的设计思想很简单,就是两个对象相互注册,然后在需要的时候调用对方的函数. 如下: class B;   class A   {   public:       void RegisterCallback(B* pB)       {           m_pB = pB;       }       void ActiveA()     

J2ME游戏开发中时钟的简单实现

时钟 在游戏开发中,有时候我们需要一个时钟来记录游戏的时间,如果时间结束则结束游戏.本文介绍如何在J2ME中使用Timer和TimerTask来实现这样一个时钟,并给出具体代码实例. 在java.util包中有一个TimerTask类,你可以扩展这个类并且实现他的run()方法,在run()方法中编写我们的逻辑代码.如果我们想制作一个游戏时钟,那么非常简单我们编写一个GameClock类扩展TimerTask,GameClock需要维持一个实例变量timeLeft,这样我们就可以记录游戏剩余的时

《OpenGL ES 2.0游戏开发(上卷):基础技术和典型案例》——6.4节点法向量和面法向量

6.4 点法向量和面法向量 OpenGL ES 2.0游戏开发(上卷):基础技术和典型案例 本章前面几节的案例都是基于球面开发的,球面属于连续.平滑的曲面,因此面上的每个顶点都有确定的法向量.但现实世界中的物体表面并不都是连续.平滑的,此时对于面上的某些点的法向量计算就不那么直观了,图6-18说明了这个问题. 从图6-18中可以看出,顶点A位于长方体左.上.前3个面的交界处,此处是不光滑的.这种情况下顶点A的法向量有两种处理策略,具体如下所列. 在顶点A的位置放置3个不同的顶点,每个顶点看作是仅

3D数学基础:图形与游戏开发中四元数用以旋转时的疑问

问题描述 3D数学基础:图形与游戏开发中四元数用以旋转时的疑问 书中在10.4.8节 四元数的乘法(叉乘)中定义四元数乘法时出了一个错误(最后四元数虚向量部分应该是W1*V1+W2*V2+V1×V2但是它却"强行"说标准乘法定义最后是V2×V1) 然后在书中提示"本书使用结尾为V1×V2的乘法定义"(非原文,简略表达) 接着在用四元数进行点旋转时说,定义一个四元数p=(0,(x,y,z))对应3D点p(x,y,z),然后通过旋转四元数q对其进行乘法: p1= qpq

Android 游戏开发中 OnTouchEvent() 触屏事件的性能优化

  关于Android 游戏开发中 OnTouchEvent() 触屏事件的性能优化笔记! 原文地址:http://blog.csdn.net/xiaominghimi/archive/2011/01/10/6127578.aspx 先上一段代码大家来看一下: view plaincopy to clipboardprint? ·········10········20········30········40········50········60········70········80····