1

libgdxフレームワークを使用してゲームを開発しています。ゲームを一時停止するときにダイアログを表示したいのですが、そのダイアログで再開ボタンを使用したいと思います。pause()とメソッドを使用する必要があることはわかっていresume()ますが、それらのメソッドで何を書くべきか理解できません。

どんな助けでも感謝されるでしょう。

私のコード:

@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
}
4

2 に答える 2

4

混乱していると思います。コールバック関数に示されている一時停止と再開の状態は、ゲームやゲームが「再生中」であるかどうかとは関係ありません。これらの呼び出しは、OSが何らかの理由でアプリケーションを一時停止することを決定したときに使用されます。

android開発者のドキュメントをざっと見ると、これらの「生涯」の問題に役立ちます。一方、ゲームに独自の一時停止と再開のロジックを何らかの方法で実装する必要があります。

于 2011-09-13T06:22:43.570 に答える
1

この問題を解決する1つの方法は、ゲームの状態(PLAY、PAUSE)の列挙型を作成することです。メインのゲームループでは、ifelseステートメントを使用できます。if(GameState == PLAY)すべてのゲームプレイのものを更新します。if(GameState == PAUSE)メニューマネージャーを更新します。

通常、ゲームアーキテクチャでは、これらのタイプの問題に状態を使用する必要があります。ゲームアーキテクチャのもう1つのルールは、すべてのゲームプレイエンティティが経過時間に関連して動作するようにすることです。そうすれば、ゲームがどのデバイスでプレイされていても、ゲームプレイの速度は常に同じになります。私はすべてのゲームで秒を小数として使用しているため、すべての動きはメートル/秒です。そうすれば、実際の物理方程式をプラグインできるので、物事を機能させるために常に狂った数字を追​​いかけているわけではありません。

この場合の一時停止の簡単な修正は、ゲームが一時停止状態のときに経過秒数をゼロに設定することです。これはハックです!特にゲームクラスなどのマネージャークラスでは、状態を使用することがほとんどの場合最良のアイデアであることを証明します。

状態間の遷移を担当するGameStateクラスの作成を検討することもできます。これは、サウンドを再生したり、メニューが画面の上から下に移動するなどのアニメーションを開始したりする場合に便利です。この場合、ゲームは一時停止でも再生でもありません。思考の糧。

モバイルゲームに入ると、TOMBSTONEとREVIVEの遷移状態を持つことは、デバイスが他のアプリケーションを処理している間、ゲームを一時的にストレージにキャッシュするのに最適です。

于 2012-11-25T07:37:16.413 に答える