2012-04-21 98 views
0

我正在用Actionscript3和Adobe Flash CS5.5創建我的第一個Flash遊戲。遊戲的概念只是你在飛船上,而你試圖避開小行星。你避免小行星的時間越長,你得到的點越多。我知道這不是很原創。今天突然我得到這個錯誤:爲什麼我的參數hitTestObject必須是非空錯誤?

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循環開始之後,將您的括號上移到右邊。

現在敵人已經超出範圍,這就是爲什麼它是空的,這是錯誤告訴你的。

+0

哈!哇,我知道這會是我錯過的一些愚蠢的東西。非常感謝。我一直坐在這裏沮喪至少2個小時。 – TyroneBiggums 2012-04-21 03:24:17

+0

它發生在我們所有人身上。很高興我能幫上忙。 – 2012-04-21 03:24:37

相關問題