В libgdx, как я могу получить ввод с помощью кнопки "Назад"?
Для моей игры я хочу, чтобы кнопка назад Android переместила вас в меню паузы, вместо того, чтобы минимизировать игру. Из того, что я искал в googled, я знаю, что мне нужно позвонить
Gdx.input.setCatchBackKey(true);
Но как я могу проверить нажатие кнопки? input.isKeyDown(Keys.BACK), похоже, ничего не делает.
Ответы
Ответ 1
Я решил проблему следующим образом:
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;
}
...
}
Не копировать вещи, но, надеюсь, это поможет вам.:)
Ответ 2
Вы можете использовать метод Gdx.input.isKeyPressed.
if (Gdx.input.isKeyPressed(Keys.BACK)){
// Do something
}
Ответ 3
Сначала создайте 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);
Это все есть. Удачи!
Ответ 4
Вы можете использовать Gdx.input.isKeyPressed(Keys.BACK), но если вы хотите, чтобы эта активность не закрывалась, вы можете обрабатывать это как:
Gdx.input.setCatchBackKey(true);