java - Libgdx 认为键盘总是被按下

标签 java libgdx

我正在尝试使用Gdx.input.isKeyPressed();处理键盘输入。起初,我处理了 asdw 输入,一切都很顺利。但是当下面的几行我尝试处理按键输入时,它不起作用。

当我调试它时,我可以看到它总是将 ifs 计为 true(换句话说,他的行为就像所有箭头都始终被按下),但这不会在“asdw”检查中发生.

当我尝试将按键更改为常规字母时,问题仍然出现。

代码:

public void update(float deltaTime)

    handleDebugInp(deltaTime);
    updateTestSprites(deltaTime);
    cameraH.update(deltaTime);
}

private void handleDebugInp(float dt) {//for enabled long pressed buttons
    if(Gdx.app.getType() != ApplicationType.Desktop)//proceed with debugging only on pc
        return;

    /*keys movement*/
    float spriteSpeed = 5 * dt;//moves 5 meters per second

    if(Gdx.input.isKeyPressed(Keys.A))//if A is pressed
        moveCurrSprite(-spriteSpeed, 0);//move left
    if(Gdx.input.isKeyPressed(Keys.D))//if D is pressed
        moveCurrSprite(spriteSpeed, 0);//right
    if(Gdx.input.isKeyPressed(Keys.W))//if W is pressed
        moveCurrSprite(0, spriteSpeed);//up
    if(Gdx.input.isKeyPressed(Keys.S))//if S is pressed
        moveCurrSprite(0, -spriteSpeed);//down

    /*Camera movment*/
    //speed
    float cameraSpeed = 5 * dt;
    float accelerationFactor = 5;

    //sprint
    if(Gdx.input.isKeyPressed(Keys.SHIFT_LEFT));
        cameraSpeed *= accelerationFactor;

    //movement
    if(Gdx.input.isKeyPressed(Keys.LEFT));
        moveCamera(-cameraSpeed, 0);
    if(Gdx.input.isKeyPressed(Keys.RIGHT));
        moveCamera(cameraSpeed, 0);
    if(Gdx.input.isKeyPressed(Keys.UP));
        moveCamera(0, -cameraSpeed);
    if(Gdx.input.isKeyPressed(Keys.DOWN));
        moveCamera(0, cameraSpeed);

}
private void moveCamera(float x, float y) {
    x += cameraH.getPosition().x;
    y += cameraH.getPosition().y;

    cameraH.setPosition(x, y);
}

如果有人知道问题所在,我会很高兴让我知道。

谢谢。

最佳答案

我给你一个提示。这两行之一上有一个杂散的 ;:

if(Gdx.input.isKeyPressed(Keys.LEFT));
    moveCamera(-cameraSpeed, 0);

(并且您将相同的问题粘贴到其他行上)。

关于java - Libgdx 认为键盘总是被按下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30957984/

相关文章:

java - Tomcat 内部错误

java - 用 Java 和 SQL 绘制日期

java - 在 Java 中,如何设置 ReSTLet Response 的头部?

java - 使用类作为键插入哈希表的通用方法

java - libgdx 多个平移事件

file - 如何在 libgdx 中获取 jar 的路径?

java - 如何将自定义 SSLSocketFactory 注入(inject) Azure Java SDK

java - Libgdx : Detect empty TextureRegion

java - libGDX - Tiled 渲染问题

java - 为什么我在 springboot 中收到错误 Factory method 'halLinkDisocoverer' throwed exception?