6

Libgdxで戻るボタンを管理する方法があれば?

たとえば、Andengineでは、次のように実装しました。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {  
     if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {          
          switch (currentScene) {
               case SPLASH:
                   break;
               case MENU:
                   Process.killProcess(Process.myPid());
                   break;
               case WORLDMENU:
                       start(MENU);
                       break;
...
...
    }
  }
}

ApplicationListenerには作成、表示、レンダリングしかできないので、ここでそれを行う方法がわかりません...私はこれを試しました:

if (Gdx.input.isButtonPressed(Keys.BACK)){
    new ScreenChangeTask(MyScreen.SPLASH);
}

しかし、それでもアプリケーションは閉じます。

参考:私は画面を切り替えるclass Controller extends Gameために使用しています。public void setScreen (Screen screen)

4

2 に答える 2

9

これを適切に行うには、LibGDXにバックキーをキャッチするように指示する必要があります。

Gdx.input.setCatchBackKey(true);

これは、アプリケーションの早い段階で行う必要があります。また、ユーザーが戻るキーを使用できるようにする場合は、falseに設定します。

于 2013-03-14T20:27:32.930 に答える
1

セットする

Gdx.input.setCatchBackKey(true);

次に、keyUpに以下のコードを実装します。

    @Override
        public boolean keyUp(int keycode) {
            if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {          
              switch (currentScene) {
                   case SPLASH:
                       break;
                   case MENU:
                       Process.killProcess(Process.myPid());
                       break;
                   case WORLDMENU:
                           game.setScreen(new MenuScreen(game)); //MenuScreen is your class Screen
                           break;
            return false;
        }
    }
    }

これがお役に立てば幸いです

于 2013-06-10T10:09:49.593 に答える