为了让我更好地理解动作脚本,我正在为我的班级做一个避免游戏教程,游戏已经完成了,但它应该在与敌人初次接触后停止。我收到一条错误,上面写着"参数数量不正确,预计2。"并且它挑出第13行,这是敌人= newEnemy();.它是否像缺少支架一样简单?我也会在下面发布课程。
package {
import flash.display.MovieClip;
import flash.utils.Timer;
import flash.events.TimerEvent;
public class AvoiderGame extends MovieClip {
public var enemy:Enemy;
public var gameTimer:Timer;
public var avatar:Avatar;
public function AvoiderGame() {
enemy = new Enemy();
addChild( enemy );
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
{
enemy.moveDownABit();
avatar.x = mouseX;
avatar.y = mouseY;
if ( avatar.hitTestObject( enemy ) )
{
gameTimer.stop();
}
}
}
}
类别:
package
{
import flash.display.MovieClip;
public class Enemy extends MovieClip
{
public function Enemy(startX:Number, startY:Number)
{
x = startX;
y = startY;
}
public function moveDownABit():void
{
y = y + 3;
}
}
}
答案 0 :(得分:0)
您的Enemy
课程有两个参数:startX
和startY
,所以在这种情况下,要创建该类的实例,您必须这样做:
var enemy:Enemy = new Enemy(value_of_startX, value_of_startY);
否则,编译器将触发该错误:"参数数量不正确,预计为2。"。
但是如果你想在不提及startX
和startY
的情况下创建一个类的实例,你可以像这样设置params的一些默认值:
// your class
// here our default values are : 0, 0
public function Enemy(startX:Number = 0, startY:Number = 0)
{
x = startX;
y = startY;
}
然后你可以用params或没有你的名字来调用它。
希望可以提供帮助。