我遇到的问题是,当我的玩家用他的盾牌与敌人碰撞时,它应该只摧毁敌人。相反,它会删除我阵列中的所有敌人。调用来移除敌人的函数在其他地方使用并且可以正常工作。
这是碰撞检查功能:
function collisionCheck(){
enemyLoop :for(var i:int = level.enemies.length-1; i>=0; i--){
if(!shield){
removeEnemy(i, true);
removePlayer();
return;
}
else{
removeEnemy(i, false); //This is what is called when I get this issue
return;
}
}
移除敌人功能:
public function removeEnemy(enemyNum:int, playerDown:Boolean){
if(!playerDown){
killsMade++;
if(level.levelObjects.contains(level.enemies[enemyNum].healthBar)){
level.levelObjects.removeChild(level.enemies[enemyNum].healthBar);
}
level.enemies[enemyNum].enemyHit(true);
level.enemies[enemyNum].gotoAndPlay("Explosion");
explodedEnemyNum = enemyNum;
playExplosionSound();
explosionDone();
}
这是删除敌人精灵的功能
public function explosionDone(e:TimerEvent){
stopExplosionSound();
if(level.enemies[explodedEnemyNum] != null){
level.levelObjects.removeChild(level.enemies[explodedEnemyNum]);
level.enemies.splice(explodedEnemyNum, 1);
}
}
感谢您的帮助,如果您还需要什么,请告诉我。