在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文件中,即使我已经在函数中设置了它们。我该如何解决这个问题?
答案 0 :(得分: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);
}
}