我希望在我的游戏中,按下 Android 系统的返回键时能够跳转到暂停菜单,而不是最小化游戏。根据我查找到的资料,我知道需要调用以下方法:
Gdx.input.setCatchBackKey(true);
但我该如何检测按钮按下?input.isKeyDown(Keys.BACK)
似乎没有任何反应。
我是这样解决问题的:
public class MyApplication implements ApplicationListener, InputProcessor {
// !! Remember to override all other required methods !!
...
@Override
public void create() {
Gdx.input.setInputProcessor(this);
Gdx.input.setCatchBackKey(true);
// rest of your stuff...
}
...
@Override
public boolean keyDown(int keycode) {
if(keycode == Keys.BACK){
// Do your optional back button handling (show pause menu?)
}
return false;
}
...
}
希望这个不是复制黏贴的内容,但愿能对你有所帮助。:)
if (Gdx.input.isKeyPressed(Keys.BACK)){
// Do something
}
isKeyJustPressed
而不是isKeyPressed
。在我的安卓设备上尝试时,后者有时会注册两次,这可能是不可取的。 - Keenan Thompson首先创建一个InputProcessor来处理返回键操作,然后将其添加到复合器中,以便其他组件仍然接收类似的事件。
InputProcessor backProcessor = new InputAdapter() {
@Override
public boolean keyDown(int keycode) {
if ((keycode == Keys.ESCAPE) || (keycode == Keys.BACK) )
// Maybe perform other operations before exiting
Gdx.app.exit();
return false;
}
};
InputMultiplexer multiplexer = new InputMultiplexer(mStage,
backProcessor);
Gdx.input.setInputProcessor(multiplexer);
并启用捕获返回键。
Gdx.input.setCatchBackKey(true);
就这些内容。祝好运!
Gdx.input.setCatchBackKey(true);