47

对于我的游戏,我希望 Android 后退按钮带您进入暂停菜单,而不是最小化游戏。从我用谷歌搜索的内容来看,我知道我需要打电话

Gdx.input.setCatchBackKey(true);

但是我如何实际检查按钮按下?input.isKeyDown(Keys.BACK) 似乎没有做任何事情。

4

4 回答 4

76

我解决了这样的问题:

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

   ...
}

不是copypasta的东西,但希望这可以帮助你。:)

于 2011-08-30T09:37:15.553 回答
29

您可以使用 Gdx.input.isKeyPressed 方法。

if (Gdx.input.isKeyPressed(Keys.BACK)){
  // Do something
}
于 2012-02-20T06:58:47.457 回答
20

首先创建一个 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);


这就是全部。祝你好运!

于 2013-11-18T12:38:38.240 回答
1

您可以使用Gdx.input.isKeyPressed(Keys.BACK)但如果您希望 Activity 不关闭,您可以将其处理为:

Gdx.input.setCatchBackKey(true);
于 2013-07-17T10:26:53.680 回答