2013-01-20 76 views
0

我一直在編碼一個非常基本的遊戲的開始,我碰到了一堵牆。當我編譯我的代碼,遊戲運行,但吐出運行時錯誤:Flash遊戲錯誤#1063

ArgumentError: Error #1063: Argument count mismatch on block(). Expected 2, got 0.
at flash.display:: Sprite/constructChildren()
at flash display::Sprite()
at flash.display::MovieClip()
at AvoiderGame().

這裏是我的文檔類名爲AvoiderGame

package 
{ 
    import flash.display.MovieClip; 
    import flash.utils.Timer; 
    import flash.events.TimerEvent; 

    public class AvoiderGame extends MovieClip 
    { 

     public var avatar1:avatar; 
     public var gameTimer:Timer; 
     public var army:Array; 

     public function AvoiderGame() 
     { 
      army=new Array(); 
      var newblock= new block(100,-15); 
      army.push(newblock); 
      addChild(newblock); 

      avatar1=new avatar(); 
      addChild (avatar1); 
      avatar1.x=mouseX; 
      avatar1.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 newblock:block = new block(randomX, -15); 

       army.push(newblock); 
       addChild(newblock); 
      } 

      avatar1.x = mouseX; 
      avatar1.y = mouseY; 

      for each (var block1:block in army) 
      { 
       block1.moveDownaBit(); 

       if (avatar1.hitTestObject(block1)) 
       { 
        gameTimer.stop(); 
       } 
      } 
     } 
    } 
} 

最後,這裏是我block類裏面好像有構造函數導致錯誤。

package 
{ 
    import flash.display.MovieClip; 

    public class block extends MovieClip 
    { 
     public var block1:block; 

     public function block(startX:Number, startY:Number) 
     { 
      x=startX; 
      y=startY; 
     } 

     public function moveDownaBit():void 
     { 
      y=y+3; 
     } 
    } 
} 

所有我試圖去工作是一系列的敵人在舞臺上隨機產卵和落下沒有頭像圖標擊中它的。我會很感激任何幫助,我可以收到很大。

+0

嗨,我已經更新了你的問題和@DavidMear提供使用單詞'block'答案。 – Marty

回答

0

這聽起來像你在舞臺上有一個block的實例,所以Flash在創建它時沒有通過startXstartY。您可以刪除任何預先放置的塊,或者只是添加默認值的構造器:

public function block(startX:Number = 0,startY:Number = 0) 
{ 
    x = startX; 
    y = startY; 
} 
+0

dang知道這是一些小學我不捕捉。謝謝你! –