使用FLEX和 Actionscript 开发FLASH游戏(七)-1

本文是关于使用FLEX和Actionscript开发FLASH游戏的系列文章第七部分,主要介绍如何通过位图动画实现游戏中的爆炸效果。通过增加帧动画,使敌机被击毁时展示更生动的爆炸场景。文章详细讲解了GraphicsResource类的修改,添加了frames和fps属性,以及创建 AnimatedGameObject 类以实现动画效果。
摘要由CSDN通过智能技术生成

使用FLEXActionscript开发FLASH 游戏-位图动画(第一页)

   在第六部分我们增加了碰撞检测。在第七部分我们将增加动画来允许我们包含一些好的爆炸效果。  

在第六部分我们介绍了碰撞检测,它让我们能击毁屏幕上的敌机。但是敌机只是消失了,这个效果有点令人不满意。在这篇论文中我们将增加动画,这让我们增加了一些漂亮的爆炸效果。

   如果Flash有个著名的地方,那它就是动画。Flex确实允许你使用同样的基于动画的矢量图,这是Flash著名之处,然而对于我们的游戏我们将使用基于动画的历史相当悠久的帧。这么做有两个原因。第一是基于动画的帧更容易实现,更加适合我们做的游戏的风格。第二个是我不是一个美术家,不得不用我能在网络中找到的免费的材料,这里我找到了基于帧的材料。

  

   上面的图像说明了我所说的基于动画的帧的含义。这是一连串的帧,按照顺序来演示,以生成一个动画。你还在学校时在你的教科书的页角画过一些小的动画么?那是相同的概念。

   要实现动画我们首先需要给GraphicsResource类一些改变。现在让我们看看。

GraphicsResource.as

package

{

    import flash.display.*;

    public class GraphicsResource

    {

        public var bitmap:BitmapData=null;

        public var bitmapAlpha:BitmapData=null;

        public var frames:int=1;

        public var fps:Number=0;

        public function GraphicsResource(image:DisplayObject,frames:int=0,fps:Number=0)

        {

            bitmap=createBitmapData(image);

            bitmapAlpha=createAplhaBitmapData(image);

            this.frames=frames;

            this.fps=fps;

        }

        protected function createBitmapData(image:DisplayObject):BitmapData

        {

            var bitmap:BitmapData=new BitmapData(image.width,image.height);

            bitmap.draw(image);

            return bitmap;

        }

        protected function createAlphaBitmapData(image:DisplayObject):BitmapData

        {

            var bitmap:BitmapData=new BitmapData(image.width,image.height);

            bitmap.draw(image,null,null,flash.display.BlendMode.ALPHA);

            return bitmap;

        }

    }

}

   这里做的改变相当简单。我们增加了两个属性:framesfpsFrames属性是在GraphicsResource中保存的动画图像有多少帧的一个数目。使用上面得一个爆炸的例子,frames应该被设置为7Fps属性定义了动画在每秒中显示的帧数。

   GameObject类不知道动画。如果你使用上面的图像来初始化一个GameObject,整个图像将被显示在屏幕上,而不是一个动画序列。为了产生动画我们需要生成一个新的类:AnimatedGameObject。现在让我们看看它的代码。

 

            

<Previous Article in Series | page: 1 2 3 4 | Next Page>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值