1

画面Aの新しいインスタンスを作成せずに、画面Bの戻るボタンを押した後、libGDXで画面Aを再開することは可能ですか? このようにして、プレイヤー キャラクターは開始点から歩くのではなく、最後の場所から歩き始めます。ユーザーが画面 A から画面 B に移動すると、画面 A は一時停止しますが、ゲームは一時停止しません。

私は通常、クラス ScreenB で次のコードを使用して画面を切り替えます。

btnLabsEnter.addListener(new InputListener(){
                 @Override
                    public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) {
                      getGame().setScreen(new ScreenA(getGame()));
                          return true;
                 }
             });

ただし、上記のコードは、以前に非表示になっていた画面 A を表示する代わりに、画面 A の新しいインスタンスを作成するためのものです。

4

1 に答える 1

0

これを行う「正しい」方法はありません。たとえば、画面が大量のリソースを必要としない場合は、Gameクラスでそれらを前もって作成し、新しいインスタンスを作成せずに画面を切り替えることができます。

それが私がVery Angry Robotsで行ったことであり、ゲームは 2 年前にローエンドの携帯電話で完全に動作しました。毎回このようにするわけではありませんが、リソースの少ないゲームでは完全にうまく機能します。

/** Creates all the screens that the game will need, then switches to the main menu. */
@Override
public void create () {
    Assets.load();
    mainMenuScreen = new MainMenuScreen(this);
    playingScreen = new WorldPresenter(this);
    scoresScreen = new ScoresScreen(this);
    setScreen(mainMenuScreen);
}
于 2013-04-22T07:04:30.717 に答える