libgdx - Libgdx 在使用 macOS 时检测到错误的键码
问题描述
我是 libgdx 的新手,我正在尝试学习使用这个框架。我习惯于在 ubuntu 上编写代码,但最近我购买了一台 macbook 以便在其上进行开发。
虽然我的代码在两个操作系统上都能完美运行。我的程序中只剩下一个错误。
当我尝试让我的角色“以自上而下的 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”,它就可以正常工作。
感谢您的未来解释!
解决方案
如果您创建 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
}
});
推荐阅读
- android-studio - 需要将自定义 android 应用程序源代码的更改放在服务器上,以便客户端设备反映这些更改?
- machine-learning - 在 PyTorch 中逐层解冻模型
- swiftui - 使用切换 SwiftUI 更改自定义类的布尔值时遇到问题
- python - 当字符串名称与列表的任何元素部分匹配时排除它
- python - 如何将带有路径的图像从节点 js 发送到 python 脚本
- node.js - 正则表达式将 Markdown 中的文本 URL 转换为链接
- sml - 为什么我会为一个简单地为列表中的每个整数添加一个值的函数出现此错误?
- python-3.8 - AttributeError:模块“警告”没有属性“过滤器警告”
- android - Flutter Android 作为 Web API 服务器
- flutter - 是否可以从云端调用客户端代码(而不是使用推送通知或实时查询)