使用FLEX和 Actionscript 开发FLASH游戏(三)-3

使用FLEXActionscript开发FLASH 游戏-嵌入资源和增加游戏元素(第三页,共四页)

 

GameObject.as

package

{

    import flash.display.*;

    import flash.events.*;

    import flash.geom.*;

    /* The base class for all objects in the game */

    public class GameObject

    {

        //object position

        public var position:Point=new Point(0,0);

        //higher zOrder objects are rendered on top of lower ones

        public var zOrder:int=0;

        //the bitmap data to display

        public var graphics:GraphicsResource=null;

        //true if the object is active in the game

        public var inuse:Boolean=false;

        public function GameObject()

        {

        }

public function startupGameObject(graphics:GraphicsResource,position:Point,z:int=0):void

        {

             if(!insue)

             {

                this.graphics=graphics;

                this.zOrder=z;

                this.position=position.clone();

                this.inuse=true;

                GameObjectManager.Instance.addGameObject(this);

             }

        }

        public function shutdown():void

        {

          if(!inuse)

          {

            graphics=null;

            inuse=false;

            GameObjectManager.Instance.removeGameObject(this);

          }

        }

        public function copyToBackBuffer(db:BitmapData):void

        {

               db.copyPixels(graphics.bitmap,graphics.bitmap.rect,position,graphics.bitmapAlpha,new Point(0,0),true);

        }

        public function enterFrame(dt:Number):void

        {

        }

    }

}

 

这个类的目的是被继承以生成更多特定的游戏元素,例如:子弹、游戏者、敌人等等。它有4个属性。位置属性仅仅定义了GameObject在屏幕上的位置。坐标(00)代表一个屏幕左上角的位置,坐标(11)代表右下角的位置。zOrder属性定义了屏幕上物体的高度。一个有着低的zOrder的游戏对象(例如地面上的建筑物)将被画在一个有着高的zOrder的游戏对象(比如游戏者)下面。图形属性是图形资源的引用,后面再进行阐述。图形资源是要画到后台缓冲器上面的图片。最后inuse属性仅仅是对象在游戏中活跃的标志。我们将使用这个属性来允许后面的资源池的使用。

    startupGameObjectshutdown两个函数起初应该看起来差不多。shutdownstartup 函数对在我们增加更多的类时将是一个共同主题。在GameObject里面他们仅仅是初始化变量,以及从GameObjectManager维护的集合里面添加或者删除游戏对象。copyToBackBuffer函数取出存储在图形属性里的图片,并把他们复制到后台缓冲器。enterFrame函数在这里是空的,这是因为游戏对象的目的是被更多特定的类继承,而且正是这些特定的类将在enterFrame函数里面增加逻辑语句。Bounce类是一个如何这样做的例子。

<前一页 | 页数:1 2 3 4 | 下一页>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值