私はitemとenemiesのオブジェクトを持つroom型のオブジェクトを持つworldオブジェクトを持っているtextgameを持っていて、次に実際のプレイヤーのためのユーザーオブジェクトを持つgamehelperオブジェクトを持っています。 (このゲームには私の質問が私のために大いに複雑になるので、徘徊している敵はいません:-))このテキストゲームをどうやってコントロールすればいいのですか?
敵を殺すか、 私のクラスを完全に構造化するときに、他の方法で考えるべきですか?私は世界を支配し、ユーザーとオブジェクトの間の仲介を必要とするマネージャーが必要だという提案を得ましたが、がどのように見えるかはわかりません。
私はまた、関連性のあるものなら、必要に応じてオブジェクトをそれぞれのオブジェクトから分離するためのインターフェイスを実装します...そして、Javaを学ぶので、理解するのに役立つ可能性のあるサンプルコードはその中に書かれています。
すなわち:
World
|
____Rooms____ (could be like a 4x4 array or something with X and Y cords)
| |
Objects Enemies (Either killable/pickupable)
Game
|
User (can walk around in rooms, kill monsters and take treasure)
ああ、それはクラス図ではないところの図です:)しかし、はい、それは私が達成しようとしているもののかなり良い説明です。私は実際にゲームをコントロールする方法について私の頭を包み込むことはできません。制御オブジェクトがコマンドを受け入れるwhile(true)ループを持っていなければならず、コマンドがkill monsteroneならどこで作業を開始すればよいでしょうか?モンスターオブジェクトのトラフルームを見て、オブジェクトにメッセージkill()を送信するか、それともユーザーの攻撃(モンスター)にメッセージを送信する必要がありますか? –
私は最初の質問は、ゲームがシングルプレイヤーかマルチプレイヤー、ターンベースかリアルタイムかどうかということです。シングルプレイヤーのターンベースのゲームの場合、コマンドをポーリングする必要はなく、受け取っている入力からそれらを実行するだけで済みます。それ以外の場合は、おそらくポーリングループが呼び出されます。 'kill'コマンドが再度処理された場合、あなたのゲームモデル(継続的な戦闘開始か、敵は死ぬか)によって異なりますが、User :: attack(モンスター)オプションを使用する傾向があります。 – chaos
おそらく、http://dead-souls.net/のような類似の確立されたコードベースを見てみるといいかもしれません。 – chaos