さて、メインクラスに次のような配列があります。
objectArray:Array = [ ];
コイン、敵、ハートなど、さまざまなアイテムを作成する3つの関数があります。これらの追加されたアイテムはそれぞれにプッシュされますobjectArray
。これらのオブジェクトのいずれかに対して弾丸をヒットテストするこの関数を作成しようとしています。
private function checkCollisions() :void{
var bullet:MovieClip;
for (var j:int = 0; j < objectArray.length; j++){
object = objectArray[j];
for(var i:int = 0; i < bulletArray.length; i++){
bullet = bulletArray[i];
if (objectArray[j].hitTestPoint(bullet.x, bullet.y, true)) {
container.removeChild(bullet);
bulletArray.splice(i,1);
if (objectArray[j] == Enemy[j]){
container.removeChild(objectArray[j]);
objectArray.splice(j,1);
trace("enemy hit");
}
}
}
}
}
問題はこの部分から来ています:
if (objectArray[j] == Enemy[j]){ \\problem
container.removeChild(objectArray[j]);
objectArray.splice(j,1);
trace("enemy hit");
}
ヒットテストされているオブジェクトを「敵」などの特定の値に対してテストする方法を模索し続け、どの種類のオブジェクトがヒットされているかに基づいて異なる結果を生成できるようにします。どんなテストの組み合わせを試しても、反応しないようです。トレースすると、結果としてobjectArray[j]
生成されます。[object Enemy]
配列値をテストする別の方法はありますか?