GUI の実装
基本的な考え方は、カメラの前にテクスチャ付きの四角形をいくつか作成し、ユーザーが画面をクリックするとそれをワールド空間に変換し、どの四角形、つまりどのボタンをクリックしたかを見つけることです。正投影がここに行く方法であることがわかるかもしれません。
正確な実装は、キーボードとマウス (GLUT、SDL など) の操作方法によって異なります。
CEGUIやFLTKなどの GUI フレームワークの使用を検討することをお勧めしますが、これは複雑な作業になることが多いためです。
ゲームの状態
ゲームの状態は、ゲーム内の uesr の通過を抽象化する簡単な方法です。DFA 上のノードとして、またはスタックを使用して、ゲームのさまざまな領域をモデル化できます。次に、GameState オブジェクトが継承する API を作成することで、これを実装できます。このインターフェイスからクラスを派生させることで、さまざまな種類のゲーム ステートを実装できます。
インターフェイス自体は、状態がアクティブになったとき、および「一時停止」などのときに状態を通知できるようにするメソッドを提供できます。
DFA を使用して状態を管理する場合、DFA の現在のノードを表すアクティブな状態が 1 つあります。状態は、ゲームへの入力 (メニューの再生ボタンをクリックするなど) に基づいて、移動する新しい状態を選択できます。
スタックを使用してゲームの状態を管理している場合は、少し異なります。最初にメニュー状態をスタックにプッシュし、次にレベルが選択されたときにそれもスタックにプッシュできます。レベルが終了すると、状態がスタックからポップされ、ユーザーはメイン メニューの状態に戻ります。
簡単なゲーム エンジンの例は、https ://bitbucket.org/iwillspeak/thulium/src にあります。GameState
ゲーム状態の基本クラスです。これらは によって管理されますGameStateFactory
。SampleState
サンプル ゲーム ステートの実装です。