0

私の学校では、小さなフラッシュ ゲームを作成する必要があります。爆弾を投下できる横スクロール飛行ゲームを作成しようとしています。

よくわからないのは、爆弾の配列です。爆弾のムービークリップが配列に追加される飛行機クラスでこの配列を作成しましたが、爆弾クラスのオブジェクトと衝突した後に爆弾を削除したいのですが、これをどのように行うかはよくわかりませんが、爆弾をアレイに押し込むのはうまくいきます。これは、配列に関して私がこれまでに持っているものです

変数の場合:

public var bomb:MovieClip;
public var bombs:Array;

メイン関数では

        public function McPlane() {
        bombs = new Array();

私の更新機能では

if(Input.bomb){
   if(bombs.length <=1){
        var bomb = new Bomb();
        stage.addChild(bomb);
        bomb.x = this.x + 30;
        bomb.y = this.y + 16;
        bombs.push(bomb);

これまでのところ、これはすべて機能します。私の質問は、爆弾クラスで同じ配列を使用して、他のオブジェクトと衝突したときに配列をポップすることはできますか? もしそうなら、どうすればいいですか?

4

1 に答える 1

0

飛行機クラスの爆弾から爆弾を削除できます。飛行機クラスで作成された爆弾のイベントリスナーを追加すると、爆弾が衝突したときにターゲットイベントが送出されます。

var bomb = new Bomb();
stage.addChild(bomb);
bomb.addEventListener("bombCollides", onBombCollideHandler);

private function onBombCollideHandler(e:Event):void {

   var bomb:Bomb = e.target as Bomb;

   if (bomb) {

      var index:int = this.bombs.indexOf(bomb);

      //if find the target bomb, remove it
      if (index != -1) {
          bombs.splice(index, 1);
      }
   }
}

ボムクラスで

public class Bomb {

   private function collide():void {

      //do some check if collide

      this.dispatchEvent("bombCollides");    

}
于 2013-10-16T01:48:34.353 に答える