5、編寫AAGun.as類
創(chuàng)建類的方法同第3步。首先選中庫中的AAGun元件,打開項目面板創(chuàng)建類。在"將類邦定到庫元件"前面打勾,點下"使用所選庫元件"的單選按鈕。圖:邦定庫元件
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);
}
}
}
機(jī)器學(xué)習(xí):神經(jīng)網(wǎng)絡(luò)構(gòu)建(下)
閱讀華為Mate品牌盛典:HarmonyOS NEXT加持下游戲性能得到充分釋放
閱讀實現(xiàn)對象集合與DataTable的相互轉(zhuǎn)換
閱讀算法與數(shù)據(jù)結(jié)構(gòu) 1 - 模擬
閱讀5. Spring Cloud OpenFeign 聲明式 WebService 客戶端的超詳細(xì)使用
閱讀Java代理模式:靜態(tài)代理和動態(tài)代理的對比分析
閱讀Win11筆記本“自動管理應(yīng)用的顏色”顯示規(guī)則
閱讀本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]
湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2025 haote.com 好特網(wǎng)