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



我是libgdx的新手,我正在尝试学习使用这个框架。我习惯于在 ubuntu 上编码,但最近我购买了一台 macbook 以便对其进行开发。

虽然我的代码在两个操作系统上都能完美运行。我的程序上只剩下一个错误。

当我尝试让我的角色"以自上而下的视图 rpg 风格"移动时,似乎 Libgdx 将我的键盘检测为 QWERTY,而我可以确保有 0 个键盘布局/映射作为 qwerty 安装。只有一个阿塞拜疆人。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",它可以正常工作。

感谢您的未来解释!

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

这是维基上的链接。

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
  }
});

最新更新