私のゲームでは、ゲームを最小化する代わりに、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;
}
...
}
コピーパスタのものではありませんが、うまくいけばこれがあなたを助けます:)
Gdx.input.isKeyPressedメソッドを使用できます。
if (Gdx.input.isKeyPressed(Keys.BACK)){
// Do something
}
最初にバックキーアクションを処理する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.isKeyPressed(Keys.BACK)を使用できますが、アクティビティが閉じないようにするには、次のように処理できます。
Gdx.input.setCatchBackKey(true);