0

我正在为我的班级做这个避免游戏教程,以便我更好地理解动作脚本,游戏已经完成了,但它应该在与敌人初次接触后停止。我收到一条错误消息,提示“参数数量不正确,预期为 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;
        }
    }
}
4

1 回答 1

0

您的Enemy类有两个参数:startX并且startY,因此在这种情况下,要创建该类的实例,您必须执行以下操作:

var enemy:Enemy = new Enemy(value_of_startX, value_of_startY);

否则,编译器将触发该错误:“参数数量不正确,预期为 2。”。

但是如果你想创建一个类的实例而不提及startXand startY,你可以像这样为你的参数设置一些默认值:

// your class

// here our default values are : 0, 0
public function Enemy(startX:Number = 0, startY:Number = 0)
{
    x = startX;
    y = startY;
}

然后你可以根据需要使用参数或不使用参数调用它。

希望能有所帮助。

于 2015-03-17T18:23:30.707 回答