Неизвестный идентификатор при использовании функции?
В 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"));
}
Он возвращается ко мне с ошибками "Неизвестный идентификатор: upKey" и "Неизвестный идентификатор: downKey" в файле Player.hx, даже после того, как я уже установил их в функции. Как это исправить?
1 ответ
Решение
Аргументы функции доступны только в этой конкретной функции (это называется областью действия переменной) - просто потому, что у вашего конструктора есть аргументы с именем upKey
а также 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);
}
}