この問題を解決する1つの方法は、ゲームの状態(PLAY、PAUSE)の列挙を作成することです。メインのゲームループでは、if elseステートメントを使用できます。 if(GameState == PLAY)すべてのゲームプレイを更新します。 if(GameState == PAUSE)でメニューマネージャを更新します。
通常、ゲームアーキテクチャでは、これらのタイプの問題に対して状態を使用する必要があります。ゲームアーキテクチャのもう1つのルールは、すべてのゲームプレイエンティティがelapsedTimeに関連して動作するようにすることです。そうすることで、ゲームのプレイ率は、ゲームがどのデバイスでプレイされているかにかかわらず、常に同じになります。私は全ての動きで秒を小数として使用しているので、すべての動きは毎秒メートルです。そうすれば、私は本当の物理方程式を取り込めるので、いつも物事を働かせようとしている狂った数を追いかけることはありません。
この場合の一時停止のクイックフィックスは、ゲームが一時停止状態のときに経過秒数をゼロに設定することです。これはハックです!ほとんどの場合、特にゲームクラスなどのマネージャクラスでは、状態を使用することが最良のアイデアであることが証明されています。
状態間の遷移を担当するGameStateクラスを作成することも考えられます。これは、画面の上から下に移動するメニューなど、サウンドを再生してアニメーションを開始する場合に便利です。この時点では、ゲームはPAUSEでもPLAYでもありません。思考の糧。
TOMBSTONEとREVIVEの移行ステートを持つモバイルゲームは、デバイスが他のアプリケーションを処理している間に一時的にストレージをストレージにキャッシュするのに最適です。
お返事ありがとうございます。私には論理がありますが、どこに書き込むのか理解できません。あなたは私を助けてくれますか? – pradeepkalla
私はあなたがロジックの仕組みを見ることができるように、すでにこのインターフェースを実装しなければならないコードのビットを含む別の質問を開くことをお勧めします – Elemental