こんにちは!
「匿名」の意味がよくわかりませんが、解決策の1つは、いわゆるヒットボックスを作成することです。
Enemy クラスがあるとします。
public class Enemy {
public var hitBox:Sprite = new Sprite() ;
public function Enemy() {
hitBox.graphics.clear() ; /* Not filled by a color, as needs to be invisible */
hitBox.graphics.drawRect(x,y,width,height) ; /* Adjust the parameters manually */
this.addChild(hitBox) ;
}
}
敵が多いので、enemyArrayを作って敵を押し込むだけ。そして、ここにプレーヤーの弾丸があります:
public class PlayerBullet extends Sprite {
private var stageReference:Stage ;
public function PlayerBullet(coord:Point, stageReference:Stage){
this.x = coord.x ;
this.y = coord.y ;
this.stageReference = stageReference ;
this.stageReference.addChild(this) ;
this.addEventListener(Event.ENTER_FRAME, loop) ;
}
private function loop(e:Event){
/*Provide some movement for bullet by changing or incrementing
this.x and this.y as you wish */
for (var i:Number = 0 ; i < enemyArray.length ; i++){
if (this.hitTestObject(enemyArray[i].hitBox)) {
enemyArray.splice(i,1) ; /* Remove the enemy from enemy array on collision */
this.stageReference.removeChild(this) ; /* Do not display bullet anymore on collision with enemy */
}
}
}
}
注: ヒットボックスは正方形の領域しか提供しません。衝突の正確な詳細が必要な場合は、いくつかのヒットボックスを作成してください。
これが役立つことを願っています!:)