0

在 player.hx 中:

public function new(X, Y, _upKey:String, _downKey:String){
    super(X, Y);

makeGraphic(20, 20, FlxColor.RED);

immovable = true;
}

在 PlayState.hx 中:

override public function create():Void
{
    super.create();

    add(new Enemy(300, FlxG.height - 20, 10, 20));
    add(new Enemy(500, FlxG.height - 40, 10, 40));

    add(player = new Player(60, FlxG.height - 40, "UP", "DOWN"));
}

即使我已经在函数中设置了这些错误,它也会在 Player.hx 文件中返回错误“未知标识符:upKey”和“未知标识符:downKey”。我该如何解决?

4

1 回答 1

1

函数参数仅在该特定函数中可用(这称为变量的范围) - 所以仅仅因为您的构造函数具有名为upKeyand的参数downKey,这并不意味着您也可以在另一个函数中自动使用它们,例如update().

为此,您需要将参数保存到Player类的成员变量中:

class Player extends FlxSprite
{
    var upKey:String;
    var downKey:String;

    public function new(X, Y, upKey:String, downKey:String)
    {
        super(X, Y);
        this.upKey = upKey;
        this.downKey = downKey;
    }

    override public function update():Void
    {
        super.update();
        trace(upKey, downKey);
    }
}
于 2016-02-12T10:35:18.003 回答