0
적 (Enemy)이 총알이나 플레이어를 때리는지를 감지하는 for 루프가 있습니다. 이 히트 테스트는 정상적으로 작동하지만 적군이 무대에서 벗어날 때 적으로부터 어레이를 제거하는 방법을 알 수 없습니다.배열에서 개체를 제거 할 때 AS3
여기
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 메인 클래스 스테이지의 기준이다 for 루프이다.