MVCモデルでのRPG製作・設計
Posted: 2013年4月06日(土) 20:29
はじめまして。
現在RPGゲーム製作を行っているのですが、
MVCでの設計でわからない点があり、こちらをご利用させていただきます。
使用言語はJavaです。
たとえばRPGなどの場合、タイトル画面、ゲーム画面、ゲームオーバー画面などのシーンがあります。
これをどのように設計するのが正なのかがわからず、苦戦しています。
考えたのはGameControllerとTitleControllerなど、各シーンに応じて
抽象コントローラクラスを継承したコントローラを実装し、
メインループでは現在のシーンのコントローラを呼び出す、という方法です。
各コントローラはそれぞれ必要なmodelを内部でnewし、ユーザー操作に応じて呼び出し、
メインループから呼び出されているexecuteメソッドで対応するviewのupdateを呼ぶようにしています。
ただ、この方法だと共通で使用するmodelの問題が発生します。
(コントローラの引数に共通のmodelを渡してあげればいけますが・・・)
また、各viewの実装についてなのですが、
それぞれのコントローラ(ここではGameControllerとTitleController)に対応するviewを実装。
コントローラ同様に必要なmodelを持たせておき、それぞれのupdateメソッドで
modelのgetterを利用し、画面の描画を行っています。
問題となるのは、controllerとviewで共通のmodelを持つ必要がある。
(二つをnewするときに、全ての使用modelを作って渡す・・・?)
ゲーム用のダイアログなど、共通でし使用するviewの実装方法。
上記のように、この方法だといろいろと問題が発生し、美しくないソースになってしまいました・・・。
簡単で使いやすい方法や、参考になるサイトやサンプルソースなどご存知でしたら、
お手数ですがお教えいただけると助かります。
長くなってしまいましたが、以上よろしくお願いします。
現在RPGゲーム製作を行っているのですが、
MVCでの設計でわからない点があり、こちらをご利用させていただきます。
使用言語はJavaです。
たとえばRPGなどの場合、タイトル画面、ゲーム画面、ゲームオーバー画面などのシーンがあります。
これをどのように設計するのが正なのかがわからず、苦戦しています。
考えたのはGameControllerとTitleControllerなど、各シーンに応じて
抽象コントローラクラスを継承したコントローラを実装し、
メインループでは現在のシーンのコントローラを呼び出す、という方法です。
各コントローラはそれぞれ必要なmodelを内部でnewし、ユーザー操作に応じて呼び出し、
メインループから呼び出されているexecuteメソッドで対応するviewのupdateを呼ぶようにしています。
ただ、この方法だと共通で使用するmodelの問題が発生します。
(コントローラの引数に共通のmodelを渡してあげればいけますが・・・)
また、各viewの実装についてなのですが、
それぞれのコントローラ(ここではGameControllerとTitleController)に対応するviewを実装。
コントローラ同様に必要なmodelを持たせておき、それぞれのupdateメソッドで
modelのgetterを利用し、画面の描画を行っています。
問題となるのは、controllerとviewで共通のmodelを持つ必要がある。
(二つをnewするときに、全ての使用modelを作って渡す・・・?)
ゲーム用のダイアログなど、共通でし使用するviewの実装方法。
上記のように、この方法だといろいろと問題が発生し、美しくないソースになってしまいました・・・。
簡単で使いやすい方法や、参考になるサイトやサンプルソースなどご存知でしたら、
お手数ですがお教えいただけると助かります。
長くなってしまいましたが、以上よろしくお願いします。