我是LibGDX和游戏制作的新手。当没有按下Keys.UP
时,精灵继续向上移动。不太清楚为什么会发生这种情况,因为我只是为了响应Keys.UP
被按下而移动它。
我正在创建自己的输入处理器类,它将处理游戏的所有输入,而不是处理相同事物的每个类。由于render方法,我的主类每帧调用player.update(delta time)。
为什么即使Keys.UP
没有按下它也会不断向上移动?它不应该在下面的条件下失败吗? (GameInputProcessor是实例gip
)
玩家类:
public void update(float dt){
if (gip.keyDown(Keys.UP)){
this.position.y += this.velocity * dt;
}
GameInputProcessor类:
public boolean keyDown(int keycode){
switch(keycode){
case Keys.UP:
System.out.println("up being pressed");
return true;
}
return false;
}
答案 0 :(得分:0)
您实际上并未测试关键状态。
gip.keyDown(Keys.UP)
对于此代码,将始终返回true。
您希望代码看起来像
if(Gdx.input.isKeyPressed(Keys.UP))
this.position.y += this.velocity * dt;
}
如果要包装gdx类,请将GIP修改为
public boolean keyDown(int keycode){
return Gdx.input.isKeyPressed(keyCode)
}