libgdx在使用macOS时检测到错误的键码

时间:2019-06-17 20:11:10

标签: libgdx

我是libgdx的新手,我正在尝试学习使用此框架。我曾经在ubuntu上编码,但最近我购买了一台Macbook来进行开发。

虽然我的代码在两个OS上都能正常工作。我的程序中只剩下一个错误。

当我尝试使角色“以自上而下的rpg样式”移动时,似乎Libgdx将我的键盘检测为QWERTY,而我可以确保安装了0个键盘布局/映射作为qwerty。只有一个AZERTY。 MacOs也配置为法语系统。

“苹果”机器是否还有其他特殊方法,以便让精灵在libgdx中的屏幕上移动?到目前为止,我还是这样:

    if (Gdx.input.isKeyPressed(Input.Keys.Z))
        player.setY(player.getY() + GameSettings.playerSpeed * dt);
    if (Gdx.input.isKeyPressed(Input.Keys.S))
        player.setY(player.getY() - GameSettings.playerSpeed * dt);
    if (Gdx.input.isKeyPressed(Input.Keys.D))
        player.setX(player.getX() + GameSettings.playerSpeed * dt);
    if (Gdx.input.isKeyPressed(Input.Keys.Q))
        player.setX(player.getX() - GameSettings.playerSpeed * dt);

最后,当按下我的“ z”键时,什么也没有发生(仅在macOS上),但是如果我按下“ w”,它就可以正常工作。

感谢未来的解释!

1 个答案:

答案 0 :(得分:0)

如果创建了InputAdapter / InputProcessor,则可以在按下每个键时检测到正在调用的键码。

Here's the link to it on the wiki.

Gdx.input.setInputProcessor(new InputAdapter () {
@Override
public boolean keyDown (int keycode) {
  System.out.println("Key Down Event, keycode: "+keycode);
  System.out.println("Z keycode: "+Input.Keys.Z);
  return true; // return true to indicate the event was handled
  }
});