5

私はゲームメニューの作り方の例を探していました。たとえば、アプリケーションをメニューに対して開いてもらいたいとします。そこから、「ゲームをプレイ」、「クレジットを表示」、「終了」のいずれかを開きます。

私がこれまでに見たものはすべてポップアップメニュー用です。

したがって、iamが探している答えは、一時停止状態、ゲーム状態などの「状態」を使用することです。しかし、これがどのようなレイアウトであるか、どのように使用するかがわかりません。また、MenuStateを作成して、どこでも例

glutとfreeglewを使用する

4

1 に答える 1

6

GUI の実装

基本的な考え方は、カメラの前にテクスチャ付きの四角形をいくつか作成し、ユーザーが画面をクリックするとそれをワールド空間に変換し、どの四角形、つまりどのボタンをクリックしたかを見つけることです。正投影がここに行く方法であることがわかるかもしれません。

正確な実装は、キーボードとマウス (GLUT、SDL など) の操作方法によって異なります。

CEGUIFLTKなどの GUI フレームワークの使用を検討することをお勧めしますが、これは複雑な作業になることが多いためです。

ゲームの状態

ゲームの状態は、ゲーム内の uesr の通過を抽象化する簡単な方法です。DFA 上のノードとして、またはスタックを使用して、ゲームのさまざまな領域をモデル化できます。次に、GameState オブジェクトが継承する API を作成することで、これを実装できます。このインターフェイスからクラスを派生させることで、さまざまな種類のゲーム ステートを実装できます。

インターフェイス自体は、状態がアクティブになったとき、および「一時停止」などのときに状態を通知できるようにするメソッドを提供できます。

DFA を使用して状態を管理する場合、DFA の現在のノードを表すアクティブな状態が 1 つあります。状態は、ゲームへの入力 (メニューの再生ボタンをクリックするなど) に基づいて、移動する新しい状態を選択できます。

スタックを使用してゲームの状態を管理している場合は、少し異なります。最初にメニュー状態をスタックにプッシュし、次にレベルが選択されたときにそれもスタックにプッシュできます。レベルが終了すると、状態がスタックからポップされ、ユーザーはメイン メニューの状態に戻ります。

簡単なゲーム エンジンの例は、https ://bitbucket.org/iwillspeak/thulium/src にあります。GameStateゲーム状態の基本クラスです。これらは によって管理されますGameStateFactorySampleStateサンプル ゲーム ステートの実装です。

于 2013-03-02T11:35:47.003 に答える