您的位置:首頁 > 軟件教程 > 教程 > Flash AS3.0教你射擊類游戲的制作

Flash AS3.0教你射擊類游戲的制作

來源:互聯(lián)網(wǎng) | 時間:2015-07-13 10:54:28 | 閱讀:178 |  標(biāo)簽: Flash   | 分享到:

5、編寫AAGun.as類


創(chuàng)建類的方法同第3步。首先選中庫中的AAGun元件,打開項目面板創(chuàng)建類。在"將類邦定到庫元件"前面打勾,點下"使用所選庫元件"的單選按鈕。圖:邦定庫元件


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;

// 現(xiàn)在的位置
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類:邦定庫中的飛機(jī)元件。隨機(jī)產(chǎn)生飛機(jī),隨機(jī)的速度,產(chǎn)生5種飛機(jī)樣式,檢測是否飛出邊界,檢測被子彈擊中。自動毀滅和爆炸效果。



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; // 飛機(jī)的速度、方向
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();
}

}

// 檢測碰撞,子彈擊中飛機(jī)跳轉(zhuǎn)到幀標(biāo)簽"explode"演示爆炸動畫。
public function planeHit() {
removeEventListener(Event.ENTER_FRAME,movePlane);
MovieClip(parent).removePlane(this);
gotoAndPlay("explode");
}

// 移除舞臺上的飛機(jī)和事件
public function deletePlane() {
removeEventListener(Event.ENTER_FRAME,movePlane);
MovieClip(parent).removePlane(this);
parent.removeChild(this);
}

}
}

小編推薦閱讀

好特網(wǎng)發(fā)布此文僅為傳遞信息,不代表好特網(wǎng)認(rèn)同期限觀點或證實其描述。

相關(guān)視頻攻略

更多

掃二維碼進(jìn)入好特網(wǎng)手機(jī)版本!

掃二維碼進(jìn)入好特網(wǎng)微信公眾號!

本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]

湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2025 haote.com 好特網(wǎng)