2

たくさんのモンスターが登場する iPhone ゲームに取り組んでいます。各モンスターには名前、最大 4 つの異なる攻撃、およびその状態を表すいくつかのスプライトがあります。モンスタークラスをセットアップしましたが、非常にうまく機能します。私はなんとか 2 匹の怪物を戦わせ、そのすべてをジャズにしました。ただし、私のゲームには、事前に定義されたモンスターのグループがあり、すべてが異なる統計を持っているため、これを達成するための最良の方法を考え出すのに苦労しています. これまでのところ、2 つのアイデアがあります。

アイデア:

  • Monster クラスを使用して、ゲームで使用可能なすべてのモンスターを定義することだけを目的としたクラスを作成します。
  • 必要なすべてのモンスターのモンスター クラスをサブクラス化します。それらのどれも実際にモンスタークラスに何も追加しませんが.

2 番目の方法の利点は、2 つの異なるモンスター (進化ツリーなど) を関連付けるのが簡単になることです。

これを行うための最良の方法は何だと思いますか?私は2番目の方法に傾いています。私が見逃している別の方法はありますか?

4

2 に答える 2

2

この種の問題の一般的なパターンは、最初のアイデアに近いfactory classを作成することです。おそらく MonsterFactory と呼ばれる単一のクラスを作成します。このクラスの仕事は、他の場所で使用するために Monster クラスのインスタンスを作成することです。工場を適切に構築すれば、進化ツリーのようなものもうまく処理できます。

ファクトリのもう 1 つの利点は、モンスターに関する情報の格納の詳細を抽象化することです。たとえば、最初の 5 匹または 10 匹のモンスターの情報をプログラムにハードコードしてテストし、後でファクトリを再実装して、大量のモンスター用にディスク上のデータベースまたはファイルを使用することができます。ファクトリ API が一定である限り、Monster クラスはそれらの詳細を気にする必要はありません。それはすべて工場にあります。

于 2012-08-10T18:12:30.543 に答える
-1

それらのどれも実際にモンスタークラスに何も追加しませんが.

2 番目の方法の利点は、2 つの異なるモンスター (進化ツリーなど) を関連付けるのがより簡単になることです。

あなた自身の質問に答えました。

于 2012-08-10T18:03:43.490 に答える