AS3使用2个不同类的数组

时间:2013-10-16 01:29:50

标签: arrays actionscript-3 flash

对于我的学校,我必须创建一个小型Flash游戏。 我正在尝试创建一个侧面滚动飞行游戏,你也可以投下炸弹。

我不确定的是我的炸弹阵列我在我的飞机类中创建了这个阵列,炸弹动画片段被添加到阵列但是我想在炸弹类中的一个物体碰撞后移除炸弹但是我不太确定如何将炸弹推入阵列中。所以这就是我到目前为止关于数组的内容

变量:

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);

到目前为止这一切都有效, 我的问题是我可以在我想要的炸弹类中使用相同的数组...当它与其他对象发生碰撞时弹出数组吗?如果是的话,我该如何解决呢?

1 个答案:

答案 0 :(得分: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);
      }
   }
}

在Bomb类中

public class Bomb {

   private function collide():void {

      //do some check if collide

      this.dispatchEvent("bombCollides");    

}