增加難度條件,實現積分達到條件後進入新關卡的邏輯
onloop():void{
//檢測碰撞
for(var i:number = this.rolebox.numchildren-1;i>-1;i--){
//獲取角色物件1
var role1:role = this.rolebox.getchildat(i) as role;
if(role1.hp<1)continue;
for(var j:number = i-1;j>-1;j--){
//如果角色已經死亡,則忽略
if(!role1.visible)continue;
//獲取角色物件2
var role2:role = this.rolebox.getchildat(j) as role;
//如果角色未死亡,並且陣營不同才能進行碰撞
if(role2.hp>0 && role1.camp != role2.camp){
//計算碰撞區域
var hitradius:number = role1.hitradius + role2.hitradius;
//根據距離判斷是否碰撞
if(math.abs(role1.x - role2.x) < hitradius && math.abs(role1.y - role2.y) < hitradius){
//碰撞之後掉血
this.losthp(role1,1);
this.losthp(role2,1);
//每掉一滴血,積分+1
this.score ++;
//在ui上顯示積分
this.gameinfo.score(this.score);
//積分大於公升級積分,則公升級
if(this.score > this.levelupscore){
//公升級關卡
this.level ++;
//在ui上顯示等級
this.gameinfo.level(this.level);
//提高下一級的公升級難度
this.levelupscore+=this.level * 5;
關卡難度提公升後,實現敵方血量,數量,速度提公升的邏輯
//關卡越高,建立敵機間隔越短
var cuttime:number = this.level < 30 ? this.level * 2 : 60;
//關卡越高,敵機飛行速度越快
var speedup:number = math.floor(this.level / 6);
//關卡越高,敵機血量越高
var hpup:number = math.floor(this.level / 8);
//關卡越高,敵機數量越多
var numup:number = math.floor(this.level / 10);
//生成小飛機
if(laya.timer.currframe % (80 - cuttime ) === 0){
this.createenemy(0,2+numup,3+speedup,1);
//生成中型飛機
if(laya.timer.currframe % (150 - cuttime * 4) === 0){
this.createenemy(1,1+numup,2+speedup,2+hpup*2);
//生成boss
if(laya.timer.currframe % (900 - cuttime * 4) === 0){
this.createenemy(2,1,1+speedup,10+hpup *6);
laya.soundmanager.playsound("res/sound/enemy3_out.***");
LayaAir飛機大戰 4
新增遊戲資源並快取動畫.快取子彈動畫 laya.animation.createframes war bullet1.png bullet1 fly 增加子彈射擊的基礎屬性.射擊型別 public shoottype number 0 射擊間隔 public shootinterval number...
飛機大戰6 遊戲框架
目標 使用面相物件設計飛機大戰遊戲類 根據明確的職責,設計planegame類如下 提示根據職責封裝私有方法,可以避免某乙個方法的 寫得太過冗長 如果某乙個方法編寫的太長,既不好閱讀,也不好維護!方法 職責 create sprites self 建立所有精靈和精靈組 方法 職責 event han...
飛機大戰製作筆記6
1.我方飛機生命 1 在main檔案中增加乙個變數 life num 用來繼續當前生命數 2 在lift num 0 時 顯示遊戲退出畫面,同時關閉所有聲音和補給發放 3 繪製,繪製文字 2.無敵時間 1 在myplane類中增加乙個變數 self.invincible false 飛機一開始並不是...