雪碧不断移动的时候不应该

时间:2014-11-24 00:56:17

标签: java input libgdx

我是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;

}

1 个答案:

答案 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)
}