web-dev-qa-db-fra.com

Dans libgdx, comment puis-je obtenir une entrée à partir du bouton de retour?

Pour mon jeu, j'aimerais que le bouton Android retour pour vous amener au menu pause, au lieu de minimiser le jeu. D'après ce que j'ai googlé, je sais que je dois appeler

Gdx.input.setCatchBackKey(true);

Mais comment puis-je vérifier la pression du bouton? input.isKeyDown (Keys.BACK) ne semble rien faire.

42
Dmiters

J'ai résolu le problème comme ceci:

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

   ...
}

Pas des trucs de copypasta mais j'espère que cela vous aidera. :)

76
raaste

Vous pouvez utiliser la méthode Gdx.input.isKeyPressed.

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

Créez d'abord un InputProcessor pour gérer les actions de touche retour, puis ajoutez-le à un multiplexeur afin que les autres composants reçoivent toujours des événements similaires.

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


Et activez la saisie de la touche retour.

Gdx.input.setCatchBackKey(true);


C'est tout ce qu'il y a. Bonne chance!

19
sheitan

Vous pouvez utiliser Gdx.input.isKeyPressed (Keys.BACK) mais si vous voulez que l'activité ne se ferme pas, vous pouvez gérer cela comme:

Gdx.input.setCatchBackKey(true);
2
Muhammad Aamir Ali