2011-04-23 115 views
0

好的,所以我有一支激光槍,它是射擊激光(好啊),叫做laser_mc,現在我正在投入敵人。但有一個問題。當我加入名爲bad的敵人時,它們會被添加,移除並重新出現在其他地方。添加敵人

這是我的代碼。我做錯了什麼?

var badadd:bad; badadd = new bad() 

addEventListener(Event.ENTER_FRAME, createbad); 
function createbad(event:Event):void { 
    addChild(badadd); 
    badadd.x = Math.random()*stage.width; 
    badadd.y= Math.random()*stage.height; 
} 

addEventListener(Event.ENTER_FRAME, removebad); 
function removebad(event:Event):void { 
    if (laser_mc.hitTestObject(badadd)) { 
     removeChild(badadd); 
    } 
} 

回答

1

它們被移除並放置在其他地方,因爲您在此處使用了enter_frame循環。每次一個框架勾選您的程序在一個隨機位置添加相同的敵人。所以它會隨機添加,刪除它,然後再將它添加到隨機的地方。

你可能想嘗試這樣的:

設置一個for循環,並填寫與敵人的數組。將該數組聲明爲類屬性\,EnemyArray。贊(僞):

for i = 1 to 10 
    var tempEnemy = new Enemy() 
    EnemyArray[i].push(tempEnemy) // put the enemy in the array 

現在,當你需要添加一個敵人 - 它已經被實例化,所以你只需要去:

addChild(tempEnemy[index]); 

現在,你可以通過陣列命中測試周期,等等。

讓我知道這是否太概念化,我會再寫一些代碼。

+0

是啊我真的不明白這一切,我得到了什麼問題,但沒有如何解決它。哦,是的,我沒有上課,我想我可能會讓你知道 – Thor625 2011-04-24 01:03:04