Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

android

libgdx

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.

like image 518
Dmiters Avatar asked Aug 28 '11 20:08

Dmiters


4 Answers

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. :)

like image 182
raaste Avatar answered Oct 11 '22 04:10

raaste


You can use Gdx.input.isKeyPressed method.

if (Gdx.input.isKeyPressed(Keys.BACK)){   // Do something } 
like image 41
ilhami Avatar answered Oct 11 '22 04:10

ilhami


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!

like image 26
sheitan Avatar answered Oct 11 '22 05:10

sheitan


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);
like image 20
Muhammad Aamir Ali Avatar answered Oct 11 '22 04:10

Muhammad Aamir Ali