gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 04:34:55 26 4
gpt4 key购买 nike

我正在尝试使用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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com