どのメソッドメソッドがゲーム状態を保存/ロードする必要があります
質問
ゲームの状態を保存する方法についてはたくさんの記事があり、それらはかなり良いです。しかし、私は一つの概念的な誤解を持っています。どこで州を救うべきですか?
私のlibgdxゲームには画面の数があり、それらのペアは メインメンスクリーン と メインスクリーン これらはから継承されます 画面 クラス。 メインメンスクリーン ゲームの開始時に表示されます メインスクリーン 少し後。
何が問題ですか?にナビゲートしました メインスクリーン, 、Androidにアプリケーションの停止を強制しました(これを達成するためにデバイスの言語設定を変更します)。その後、アプリケーションをもう一度選択し、見ることができます メインメンスクリーン 示されています。でも私はしたい メインスクリーン 表示されます。
私はオーバーライドすべきだと思います resume
方法。しかし、どちら?授業がある psgame それは拡張されます ゲーム libgdxのクラス。ブレークポイントをITSに入れました resume
方法とそれは、メソッドが呼び出されていないことが判明しました。私は問題を調査しましたが、この奇妙なコードを見つけました onResume
の方法 AndroidApplication libgdxのクラス:
if (!firstResume)
graphics.resume();
else
firstResume = false;
私のデバッガーは言った Firstrosume 真実で、行きませんでした graphics.resume() ライン。
- 私は何を間違えましたか?
- どのような方法をオーバーライドする必要がありますか?
解決
私はあなたがこれを正しく絞り込んだと思います、そしてあなたは resume
メソッド呼び出し Game
サブクラス。これは、他のアプリに少し切り替えてから、アプリに切り替えると呼び出されます(アプリを終了する手順を実行することなく)。何らかの理由で、libgdxは転送しません resume
最初のスタートアップを呼びかけます(このデザインはおそらく長期的には良い考えですが、始めるときは少し混乱しています)。復元コードをから呼び出すのに十分簡単です create
あなたの方法 Game
(アプリケーションスタートアップでのみ呼び出されます)ゲームの最初のスタートを「履歴書」の動作にするようにします。