0
我有一個for循環,用於檢測敵人是否擊中子彈或玩家。那些命中測試工作正常,但當敵人離開舞臺時,我無法弄清楚如何從陣列中移除敵人。當它離開舞臺時從陣列中移除物體AS3
這裏的for循環
for (var i:int = _enemies.length - 1; i >= 0; i--){
for(var j:int = _bullets.length - 1; j >= 0; j--){
if(_bullets[j] != null && _enemies[i] != null){
//Check if bullet hits enemy
if(_bullets[j].hitTestObject(_enemies[i])){
//Tells enemy he's hit
if (_enemies[i] != null && _bullets[j] != null){
_enemies[i].isHit(_bullets[j].getType());
if(_enemies[i].getHealth() <= 0){
_enemies.splice(i, 1);
}
}
//removes bullet
if(_bullets[j] != null){
if (_bullets[j].parent) {
_bullets[j].parent.removeChild(_bullets[j]);
_bullets.splice(j, 1);
}
}
if(_bullets[j] != null){
if(_bullets[j].x > _stage.stageHeight){
if (_bullets[j].parent) {
_bullets[j].parent.removeChild(_bullets[j]);
_bullets.splice(j, 1);
}
}
else{
_bullets.splice(j, 1);
}
}
}
//Check if player hit
else if(_enemies[i] != null && _player != null){
if(_enemies[i].hitTestObject(_player)){
if (_enemies[i] != null){
_enemies[i].isHit("player");
_enemies.splice(i, 1);
}
else if (_enemies[i] == null){
_enemies.splice(i, 1);
}
}
}
if (_enemies[i] != null){
if(_enemies[i].isDead == true){
_enemies.splice(i, 1);
}
}
else if(_enemies[i] != null){
if(_enemies[i].x < 0){
_enemies.splice(i, 1);
}
}
if(_stage.contains(_enemies[i])){
}
else{
_enemies.splice(i, 1);
}
}
}
}
_stage是從主類級的參考。