2011-12-20 9 views
0

私はゲームを作っています。そして今度は、メニュー( - >チュートリアル) - >ゲーム - >スコアボード - >ゲームを スクリーンで実装しようとしています。州を使用してアプリケーションのメニューと画面を実装する必要がありますか?

これらの画面自体は、構造的にかなり異なります。ステートが100%正しいアプローチであるかどうかはわかりません(ステートが似たレイアウトに適していることを理解しています)。一方、多くのステートに戻るボタンがあり、以前の状態に戻ります。チュートリアルでは、私はゲームを開始し、メニューボタンなどに戻るでしょう。

このような問題の明確な解決策があるのでしょうか?おそらく、そのようなケースを処理するための特別なライブラリがありますか?

答えて

0

State machines(視覚状態だけでなく)は、ボタンやあなたのケースのメニューアイテム、おそらくゲームロジックの一部など、カプセル化されたコンポーネントの動作を実装するのに適したソリューションです。これらは、各コンポーネントごとに独立して記述することができ、相互作用を整理し、エラーを防ぐのに役立ちます。

アプリケーション全体を見ているときは、状態マシンは保守するのが難しいです。通常、相互作用は多次元です(つまり、1つのコンポーネントだけでなく、階層内のさまざまなレベルにあります)。すべての異なるプレイヤーが考慮されると、結果として得られる状態マシンはすぐに非常に複雑になります。

私の経験から、アプリケーションロジック用のModel-View-Controllerアーキテクチャと組み合わせたイベントドリブンアプローチを使用し、コンポーネントレベルでステートマシンを使用することをお勧めします。私はこれについて、既存のModel-View-Controllerフレームワークのいくつかを見ることをお勧めします。特に、RobotLegsPureMVCParsley(私にとっては、他の2つのモデルよりも完成度が低いと思われます)。