當前位置:編程學習大全網 - 編程軟體 - flash as3.0關於碰撞的檢測

flash as3.0關於碰撞的檢測

我覺得應該在主舞臺寫,畢竟這涉及到兩個類

壹樓的思路是對的,就是語法有點問題,而且碰撞檢測可以考慮用hitTestObject或hitTestPoint

我之前給同學寫過壹個遊戲,大量餅幹人從右到左飛,玩家要碰到所有餅幹人,不然就會減生命值,妳可以參考壹下這段代碼(主要是懶得重新寫了,以前寫的這個註釋很好)

這裏面碰撞和刪除的代碼都有了

要註意if(bmList.length>0)這句,如果忘了這個條件,屏幕上沒有子彈(數組為空)的時候就會出問題

addEventListener(Event.ENTER_FRAME,always);

function always(e:Event):void{

//當屏幕上有餅幹人的時候

if(bmList.length>0){

//控制所有的餅幹人

for(i=0;i<bmList.length;i++){

//餅幹人向左飛

bmList[i].x -= 5;

//當餅幹人飛出屏幕的時候

if(bmList[i].x<-100)

{

//把餅幹人刪掉

bg.removeChild(bmList.splice(i,1)[0]);

//生命值減壹

life--;

//更新顯示生命值的text box

ts.life.text = "Life: "+life;

}

//如果玩家碰到餅幹人

if(player.hitTestObject(bmList[i])){

//把餅幹人刪掉

bg.removeChild(bmList.splice(i,1)[0]);

//分數加壹

mark++;

//更新顯示分數的text box

ts.mark.text = "Mark: "+mark;

}

}

}

}

以上是我程序的壹部分,原代碼太長,這裏就不貼聲明變量和創建mc的部分了

如果有什麽不懂的可以再問

  • 上一篇:python復數的表達形式是怎麽樣的?
  • 下一篇:無錫市景點大全
  • copyright 2024編程學習大全網