In libgdx, how do I get input from the back button?

风流意气都作罢 提交于 2019-11-27 00:20:48

问题


For my game, I'd like the Android back button to take you to the pause menu, instead of minimizing the game. From what I've googled, I know I need to call

Gdx.input.setCatchBackKey(true);

But how do I actually check for the button press? input.isKeyDown(Keys.BACK) doesn't seem to do anything.


回答1:


I solved the problem like this:

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;
   }

   ...
}

Not copypasta stuff but hopefully this helps you out. :)




回答2:


You can use Gdx.input.isKeyPressed method.

if (Gdx.input.isKeyPressed(Keys.BACK)){
  // Do something
}



回答3:


First create an InputProcessor to handle the back key actions and then add it to a multiplexer so that other components still receive similar events.

      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);


And enable catching the back key.

Gdx.input.setCatchBackKey(true);


That's all there is. Good luck!




回答4:


You can use Gdx.input.isKeyPressed(Keys.BACK) but if you want that Activity does not closes you can handle this as:

Gdx.input.setCatchBackKey(true);


来源:https://stackoverflow.com/questions/7223723/in-libgdx-how-do-i-get-input-from-the-back-button

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!