我是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”,它就可以正常工作。
感谢未来的解释!
答案 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
}
});