Flash 游戏 毕业论文(5)

2019-04-02 11:42

}

vx=6; vy=0; fangxiang=2;

编写键盘按键弹起事件的方法:

private function onKeyUp_(eve:KeyboardEvent):void {

if (eve。keyCode==Keyboard。UP) //放开上 { }

if (eve。keyCode==Keyboard。DOWN) //放开下 { }

if (eve。keyCode==Keyboard。LEFT) //放开左 { }

if (eve。keyCode==Keyboard。RIGHT) //放开右 {

if (vx>0) { }

17

if (vy<0) { }

vy=0;

if (vy>0) { }

vy=0;

if (vx<0) { }

vx=0;

vx=0;

}

3。2。2 玩家坦克发射子弹

在经典坦克游戏中,玩家发射的子弹上限只能有一个。这个功能的实现很简单,在玩家类中添加一个子弹数的参数(buNum),只有当它等于0,也就是舞台上没有玩家子弹时,才能发射子弹,这样就保证了子弹数的唯一。发射子弹的原理就是用Flash中的addChild方法添加一个玩家子弹类的实例,具体实现方法如下:

在onEnterFrame()函数中添加代码判断玩家发射的子弹数。 if (MovieClip(parent)。buNum<1)

在键盘按下事件方法中加入发射子弹的代码。 if (ev。keyCode==Keyboard。CONTROL)

}

}

{

if (isArmed) {

MovieClip(parent)。buNum=1; var bu:Bullet= new Bullet(); MovieClip(parent)。addChild(bu);

isArmed=false; //发射完毕后不能再次发射子弹

}

{

isArmed=true; //isArmed为true说明当前可以发射子弹

18

3。3 玩家子弹类

玩家子弹类同样是一个静态的图片,但是在子弹元件中添加了发光滤镜,如图3。3。1所示。

图3。3。1 玩家子弹元件设计界面

3。3。1子弹的速度与方向

子弹的速度也分横坐标的速度和纵坐标的速度,分别为vx和vy,由于子弹实例是由玩家类创建,所以子弹一被创建就会有一个固定的速度和方向,定义一个变量_BulletFX来表示子弹的飞行方向,子弹要获取方向要用到以下语句:

_BulletFX=MovieClip(parent)。player。fangxiang;

其中MovieClip(parent)表示子弹的父级对象,即State元件,通过点方法找到玩家类中的方向参数(fangxiang),通过方向值,改变横坐标和纵坐标的速度,这样子弹就会沿着玩家坦克面对的方向发射了。

19

具体实现方法如下:

添加\加载到舞台\事件函数。 public function Bullet():void

{

addEventListener(Event。ADDED_TO_STAGE,onATS_); //只有当子弹

被加载到舞台时才会触发onATS_内部的代码

}

编写加载到舞台时的事件方法。

public function onATS_(e:Event):void { vx=0;

vy=0;

//让子弹在被加载时赋予子弹方向和速度

_BulletFX=MovieClip(parent)。player。fangxiang;向,由于子弹与玩家同方向,所以可以直接赋值

if (_BulletFX==1) { x=MovieClip(parent)。player。x; y=MovieClip(parent)。player。y-20; vy+=-15;

}

if (_BulletFX==2) { x=MovieClip(parent)。player。x+20; y=MovieClip(parent)。player。y; vx+=15;

}

if (_BulletFX==3) {

x=MovieClip(parent)。player。x;

20

获取玩家的方

//

}

y=MovieClip(parent)。player。y+20; vy+=15;

if (_BulletFX==4) { }

x=MovieClip(parent)。player。x-20; y=MovieClip(parent)。player。y; vx+=-15;

//加载子弹删除和进入帧的事件方法

}

当子弹被删除时,同时删除时间监听器 public function onRFS_(e:Event):void

3。3。2 子弹的碰撞

子弹被创建之后,第一步先要将被创建的子弹“上传”到父级类(State)中的bulletCS参数中,因为要保证碰撞的唯一性,检测敌人与子弹的碰撞就写在了敌人类中。子弹类中碰撞是检测子弹与墙和边框的碰撞,子弹撞到了墙或者超出了边框,则子弹自身被删除,玩家类中的子弹数(buNum)变为0,子弹消失后玩家便可以再次发射出子弹。

下面为具体实现方法:

在加载到舞台事件函数中添加进入帧事件监听器。

addEventListener(Event。ENTER_FRAME,onEnterFrame_);

21

addEventListener(Event。REMOVED_FROM_STAGE,onRFS_);

{ }

removeEventListener(Event。ADDED_TO_STAGE,onATS_); removeEventListener(Event。REMOVED_FROM_STAGE,onRFS_); removeEventListener(Event。ENTER_FRAME,onEnterFrame_);


Flash 游戏 毕业论文(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:20110109你的膝盖健康吗x

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: