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 に答える