我在這裏遇到問題。每隔五秒鐘,spawnEnemies被解僱。它創建一個動畫片段,設置它的位置並將其添加到舞臺和數組中。在函數checkBullet中,我檢查子彈是否碰到其中一個敵人。如果是這樣,子彈和敵人將從舞臺上移開,並將敵人從陣列中拼接出來。但是,一旦我擊中敵人,就會發生錯誤:從數組拼接後出錯#1010
TypeError:錯誤#1010:術語未定義且沒有屬性。
如果我註釋掉arrayEnemies.splice(i,1)行,它工作正常,但它不會從數組中刪除。這本身不是一個問題,但自然我不喜歡在我的數組中保留不必要的數據。對此有何幫助?
function checkBullet(event:Event) {
if(stage.contains(mcBullet)) {
for(var i:int = 0; i < arrayEnemies.length; i++) {
if(arrayEnemies[i].hitTestPoint(mcBullet.x, mcBullet.y, true)) {
stage.removeChild(mcBullet);
this.removeChild(arrayEnemies[i]);
arrayEnemies.splice(i,1);
bulletOnStage = false;
}
}
if(mcBullet.x > 800) {
stage.removeChild(mcBullet);
bulletOnStage = false;
}
}
}
function spawnEnemies(event:TimerEvent) {
var enemie:MovieClip = new box_mc();
enemie.name = "mcBox" + event.currentTarget.currentCount;
enemie.x = 850;
enemie.y = Math.floor(Math.random()*(1+155)+255);
addChild(enemie);
arrayEnemies.push(enemie);
}
function moveEnemies(event:Event) {
for(var i:int = 0; i < arrayEnemies.length; i++) {
arrayEnemies[i].x -= 5;
}
}
你能否詳細說明如何做到這一點? – Veltar
我需要看到命中的敵人代碼 – Neil
它都在checkBullet函數中,它處理對敵人的命中。 – Veltar