2012-02-15 14 views
1

ゲームの状態を保存する方法については多くの記事があり、かなり良いです。しかし、私は州を救うべきであるという概念的な誤解が1つありますか?彼らはこれらが画面クラスから継承されMainSceneScreenMainMenuScreenをしているのゲームの状態をセーブ/ロードするメソッドのメソッド

マイlibGDXゲームは、画面の数と対を有します。 MainMenuScreenは、ゲームの開始時にMainSceneScreen少し後に表示されます。

何が問題ですか? MainSceneScreenに移動して、アプリケーションを停止するようにAndroidを強制しました(これを実現するためにデバイスの言語設定を変更します)。その後、再びアプリケーションを選択すると、MainMenuScreenが表示されます。しかし、MainSceneScreenが表示されます。

私はresumeメソッドをオーバーライドする必要があります。しかし、どちら?私はクラスPsGameを持っています。ゲームのlibgdxクラスです。私はそのresumeメソッドにブレークポイントを置くと、そのメソッドが呼び出されていないことが判明しました。私はこの問題を調査し、私はlibGDXでAndroidApplicationクラスのonResume方法でこの奇妙なコードを見つけた:私のデバッガはfirstResumeは本当だったと(graphics.resumeに行っていないと述べた

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

行。

  1. どうしたのですか?
  2. どのメソッドを上書きする必要がありますか?
+1

代わりにhttp://gamedev.stackexchange.com/にQを投稿してみてください:) –

+0

LOL - あなたはすでにそれを行っていました:o) –

答えて

1

私はあなたがこれを正しく絞り込むきたと思うし、あなたのGameサブクラスのresumeメソッドの呼び出し中に保存された状態を復元する必要があります。これは、ある種の他のアプリにちょっと変わってから、あなたのアプリに戻って(アプリを終了させるような手順を経ることなく)呼び出す必要があります。何らかの理由で、libgdxはresumeの呼び出しを最初の起動に転送しません(この設計はおそらく長期的には良い考えですが、起動時には少し混乱します)。 Gamecreateメソッド(アプリケーションの起動時にのみ起動されます)から復元コードを呼び出して、ゲームの最初の開始に「再開」動作を持たせるのは簡単です。

関連する問題