どのメソッドメソッドがゲーム状態を保存/ロードする必要があります

StackOverflow https://stackoverflow.com/questions/9301315

  •  25-10-2019
  •  | 
  •  

質問

ゲームの状態を保存する方法についてはたくさんの記事があり、それらはかなり良いです。しかし、私は一つの概念的な誤解を持っています。どこで州を救うべきですか?

私のlibgdxゲームには画面の数があり、それらのペアは メインメンスクリーンメインスクリーン これらはから継承されます 画面 クラス。 メインメンスクリーン ゲームの開始時に表示されます メインスクリーン 少し後。

何が問題ですか?にナビゲートしました メインスクリーン, 、Androidにアプリケーションの停止を強制しました(これを達成するためにデバイスの言語設定を変更します)。その後、アプリケーションをもう一度選択し、見ることができます メインメンスクリーン 示されています。でも私はしたい メインスクリーン 表示されます。

私はオーバーライドすべきだと思います resume 方法。しかし、どちら?授業がある psgame それは拡張されます ゲーム libgdxのクラス。ブレークポイントをITSに入れました resume 方法とそれは、メソッドが呼び出されていないことが判明しました。私は問題を調査しましたが、この奇妙なコードを見つけました onResume の方法 AndroidApplication libgdxのクラス:

    if (!firstResume)
        graphics.resume();
    else
        firstResume = false;

私のデバッガーは言った Firstrosume 真実で、行きませんでした graphics.resume() ライン。

  1. 私は何を間違えましたか?
  2. どのような方法をオーバーライドする必要がありますか?
役に立ちましたか?

解決

私はあなたがこれを正しく絞り込んだと思います、そしてあなたは resume メソッド呼び出し Game サブクラス。これは、他のアプリに少し切り替えてから、アプリに切り替えると呼び出されます(アプリを終了する手順を実行することなく)。何らかの理由で、libgdxは転送しません resume 最初のスタートアップを呼びかけます(このデザインはおそらく長期的には良い考えですが、始めるときは少し混乱しています)。復元コードをから呼び出すのに十分簡単です create あなたの方法 Game (アプリケーションスタートアップでのみ呼び出されます)ゲームの最初のスタートを「履歴書」の動作にするようにします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top