首页 > 教程 > Flash AS3.0教你射击类游戏的制作

Flash AS3.0教你射击类游戏的制作

时间:2015-07-13 | 来源:互联网 | 阅读:172

话题: Flash

5、编写AAGun.as类


创建类的方法同第3步。首先选中库中的AAGun元件,打开项目面板创建类。在"将类邦定到库元件"前面打勾,点下"使用所选库元件"的单选按钮。图:邦定库元件


Flash AS3.0教你射击类游戏的制作

AAGun类:邦定库中的炮元件,向左移动向右移动,检测边界,自动消毁。



package {
import flash.display.*;
import flash.events.*;
import flash.utils.getTimer;

public class AAGun extends MovieClip {
static const speed:Number = 150.0;
private var lastTime:int; // 控制移动的Timer

public function AAGun() {
// 枪的初始位置
this.x = 275;
this.y = 340;

//运动
addEventListener(Event.ENTER_FRAME,moveGun);
}

public function moveGun(event:Event) {
// 得到时差
var timePassed:int = getTimer() - lastTime;
lastTime += timePassed;

// 现在的位置
var newx = this.x;

// 移动到左边
if (MovieClip(parent).leftArrow) {
newx -= speed*timePassed / 1000;
}

// 移动到右边
if (MovieClip(parent).rightArrow) {
newx += speed*timePassed / 1000;
}

// 检测边界
if (newx < 10) newx = 10;
if (newx > 540) newx = 540;

// 更新位置
this.x = newx;
}

// 移除屏幕上的炮和事件
public function deleteGun() {
parent.removeChild(this);
removeEventListener(Event.ENTER_FRAME,moveGun);
}
}
}

新建文件Airplane.as


Airplane类:邦定库中的飞机元件。随机产生飞机,随机的速度,产生5种飞机样式,检测是否飞出边界,检测被子弹击中。自动毁灭和爆炸效果。



package {
import flash.display.MovieClip;
import flash.events.TimerEvent;
import flash.utils.Timer;
import flash.utils.getTimer;
import flash.events.Event;

public class Airplane extends MovieClip {
private var dx:Number; // 飞机的速度、方向
private var lastTime:int; // 控制移动的Timer
//左右移动
public function Airplane(side:String, speed:Number, altitude:Number) {
if (side == "left") {
this.x = -50; // start to the left
dx = speed; // fly left to right
this.scaleX = -1; // reverse
} else if (side == "right") {
this.x = 600; // start to the right
dx = -speed; // fly right to left
this.scaleX = 1; // not reverse
}
this.y = altitude; // vertical position

this.gotoAndStop(Math.floor(Math.random()*5+1));
// set up animation
addEventListener(Event.ENTER_FRAME,movePlane);
lastTime = getTimer();
}
//检测边界
public function movePlane(event:Event) {
// get time passed
var timePassed:int = getTimer()-lastTime;
lastTime += timePassed;

// move plane
this.x += dx*timePassed/1000;

// check to see if off screen
if ((dx < 0) && (x < -50)) {
deletePlane();
} else if ((dx > 0) && (x > 600)) {
deletePlane();
}

}

// 检测碰撞,子弹击中飞机跳转到帧标签"explode"演示爆炸动画。
public function planeHit() {
removeEventListener(Event.ENTER_FRAME,movePlane);
MovieClip(parent).removePlane(this);
gotoAndPlay("explode");
}

// 移除舞台上的飞机和事件
public function deletePlane() {
removeEventListener(Event.ENTER_FRAME,movePlane);
MovieClip(parent).removePlane(this);
parent.removeChild(this);
}

}
}

Adobe Flash CS4简体中文版

TOP

软件

1
Adobe Flash CS4运营中
动画设计软件
161 MB  09.13  赞(830)
安全无广告  需网络
推荐

最新好玩手游

更多

手游风云榜

更多

资讯阅读

更多


湘ICP备2022002427号-8
© 2013~2019 66xz.com 66小吃网