メインメニューシステムを作成する最良の方法は何ですか?


12

マウスをボタンの上に移動すると強調表示するボタンを作成するのは簡単ですが、サブメニューの場合はちょっと行き詰まります。サブメニューを備えたメインメニューを使用する最良の方法に関するヒントはありますか?(Singleplayer-> Load Save-> Save 1-5?-> Start gameなど)

回答:


12

これは通常、ゲームの状態のスタックを使用して行われます。たとえば、上記の各アイテムは次のようにスタックにプッシュされます。

  • ゲームプレイ
  • 保存を選択します
  • シングルプレーヤー
  • メインメニュー

スタック上の各状態がそのサブアイテムを参照する場所。ボタンがクリックされると、対応する状態がスタックにプッシュされ、描画されて操作される一番上のアイテムになります。通常、レイヤー間に何らかの透明度がない限り、その最上位状態のみを描画します。その場合、アクティブ状態を描画するまでスタックの最下部から上に描画します。


ゲームの状態スタックについてさらにアイデアが必要な場合は、次の質問があります。gamedev.stackexchange.com
The Communist Duck

6

厳密な要件に応じて、有限状態マシン(FSM)または状態のスタック(サブメニュー)として確実に実装する必要があります。FSMの現在のサブメニューまたはスタックの一番上のサブメニューのいずれかが、画面に描画され、入力を処理します。そして、ユーザーがボタンをクリックしたことを検出すると、FSMを切り替えるか、スタックに正しい状態をプッシュして、次の画面に進みます。

あなたの場合、私はスタックが最適だと思っていますが、メニューを自由に飛び回るより複雑なメニューシステムがある場合は、FSMを使用する必要があります。


4

「最良の方法」は完全に主観的です。他のゲームがそれを行う方法を見て、うまく機能するものを見つけるかどうかを確認してください。絶対に必要なことの1つは、ユーザーが[キャンセル]をクリックして前のレベルに戻る方法です。各メニューオブジェクトは、それが開かれたメニューへの参照を返すか、スタックで実装できます。

それとは別に、それはすべてあなたのゲームがどのように感じ、あなたがメニューにどのように感じさせたいかによって異なります。各メニューは、ファイナルファンタジースタイルの画面全体を占める必要がありますか?それらは、Windowsサブメニューのように互いに分岐する必要がありますか?ラジアルメニューのようなエキゾチックなものに行くべきですか?本当にあなた次第です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.