我一直在编写一个非常基本的游戏的开头,我已经撞墙了。当我编译我的代码时,游戏会运行,但会发出运行时错误:
ArgumentError:错误#1063:块()上的参数计数不匹配。预期2,得到0.
在flash.display :: Sprite / constructChildren()
在flash display :: Sprite()
在flash.display :: MovieClip()
在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 :(得分:0)
听起来你在舞台上有block
的实例,因此Flash正在创建它而不传递startX
和startY
。您可以删除任何预先放置的块,也可以只将默认值添加到构造函数中:
public function block(startX:Number = 0,startY:Number = 0)
{
x = startX;
y = startY;
}