0

对于我的学校,我必须创建一个小型 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);

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

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 回答