2012-04-21 8 views
0

私はActionscript3とAdobe Flash CS5.5で初めてのフラッシュゲームを作成しています。ゲームのコンセプトは、あなたが宇宙船にいて、小惑星を避けようとしているということです。あなたが小惑星を避ける時間が長くなればなるほど、得点が増えます。私はそれが非常にオリジナルではないことを知っています。突然、今日私はこのエラーを得た:なぜパラメータを取得するのですか?hitTestObjectはnull以外のエラーである必要がありますか?

TypeError: Error #2007: Parameter hitTestObject must be non-null. 

このエラーが何をしているかの宇宙船が小惑星に当たったとき何も起こらないということです。宇宙船はちょうど右に飛ぶ。

これを修正する方法はわかりません。ここに私のコードは次のとおりです。あなたのブラケットが台無しにされているよう

public class AvoiderGame extends MovieClip 
{ 
    public var army:Array; 
    public var gameTimer:Timer; 
    public var avatar:Avatar; 

    public function AvoiderGame() 
    { 
     army=new Array(); 

     avatar=new Avatar(); 
     addChild(avatar); 
     avatar.x=mouseX; 
     avatar.y=mouseY; 

     gameTimer= new Timer (25); 
     gameTimer.addEventListener(TimerEvent.TIMER, onTick); 
     gameTimer.start(); 

    } 
    public function onTick(timerEvent:TimerEvent):void 
    { 
     if (Math.random() < 0.1) 
     { 
      var randomX:Number = Math.random() * 400; 
      var newEnemy=new Enemy(randomX,-15); 
      army.push(newEnemy); 
      addChild(newEnemy); 
     } 

      avatar.x=mouseX; 
      avatar.y=mouseY; 
      for each (var enemy:Enemy in army) 

      enemy.moveDownABit(); 
     { 
      if (avatar.hitTestObject(enemy)) 
      { 
       gameTimer.stop(); 
       dispatchEvent(new AvatarEvent(AvatarEvent.DEAD)); 
      } 
     } 
    } 
} 

}

答えて

1

が見えます。それぞれがenemy.moveDownABit()行だけを実行しています。 forループの開始後、ブラケットをその上に移動します。

今のところブラケットでは、敵が範囲外に出ているので、エラーがあなたに伝えているのはNullです。

+0

HA!うわー、私はちょうど逃したばかげた何かになるだろうと分かっていた。どうもありがとうございます。私はここで座って、少なくとも2時間不満を抱いています。 – TyroneBiggums

+0

それは私たちすべてに起こります。お役に立てて嬉しいです。 –

関連する問題