2011-12-08 3 views
-1

こんにちは私は、Javaでシステムを作る方法を理解して理解することができますか?私はゲームのさまざまな単位をとり、チームに追加するプログラムを作りたいと考えています。それから、2つのチームが統計的平均のために何度も戦います。ユニット戦闘システムを設計する(java)

私が助けが必要なのは、ユニットの設計方法です。それは一般的なユニットクラスを作ってから、一般的なユニットクラスを継承しているような、各ユニットのためのクラスを作ってくれるのだろうかと疑問に思っています。もし私がチームごとにユニットを保管するにはどうすればいいのですか?それでも、それらを一種類のユニークなユニットとして呼び出すことができます。

たとえば、私はチームにユニットを追加する機能を持っています、私はarraylistを考えていました。それから戦闘になると、私はチームからユニットを引っ張り、そのメソッドのいくつかを呼び出します。ユニットには能力などがあります。ユニットが何であるか知る必要があります。異なるメソッドがあるからです。

基本的に私は、複数のユニットを定義するシステムを作るのを助け、チームにそれらを追加し、それらを異なる時間に呼び出すことができます。どんな助け?

+0

あなたの質問は、はるかに広いです。この質問を閉じて、いくつかの自己完結型の質問に絞り込んでください。多分あなたはhttp://gamedev.stackexchange.com/に興味がありますか? – kay

+0

私はそのサブフォーラムを見ていきます。上記のように、主な質問は、Javaでクラスを設計すると、ベースの統計は同じですが、能力が異なる複数のユニットを持つことができます。 – Tempus35

答えて

1

あなたが理解していれば、Grunt、CommunicationOfficer、General(例として)などのメンバーをチームに追加したいと考えています。それから、すべての草原や将軍全員を繰り返し処理できるようにしたいのですか?

そうですね、私はユニットをスーパークラスとして、次にグランテル、ゼネラルなどはすべてユニットを拡張していると思います。私はあなたが各タイプごとに別々のArrayListsと、すべてのユニットのための1つのArrayListを維持したいかもしれないと思う。次に、ユニットを追加するときに、ユニットを適切な型固有のArrayListと全体のArrayListの両方に追加します。

ここで、Gruntオブジェクトだけが必要な場合は、ArrayList gruntsを使用してください。それ以外の場合、すべてのユニットが必要な場合は、ArrayListユニットを使用します。

+0

チームのためのすべてのユニットの1つのarraylist、そしてそのリストは、異なるユニットのタイプ、grunts、一般的な等を保持するだろう。そして、私は各戦闘ターンのリストを調べ、どのユニットがターンを持っているかを見つけるだろう。そのチーム。それから、両方のチームに与えられたユニットとの戦いをさせる。どのユニットにターンがあるかを見るには、そのユニットをスピードメソッドにしてください。等 – Tempus35

+0

ユニットを持つ単一のArrayListが動作します。 Unitで必要なメソッドを宣言し、個々の型でオーバーライドするだけです。 また、コードを短くして再構築しないために、[Apache Commons Collections](http://commons.apache.org/collections/)が役立つかもしれません。これには、条件を満たすリストの要素のみを返すイテレータを返すFilterIteratorがあります。 –

0

あなたの問題を正しく理解しているかどうかわかりませんが、ここに私の提案があります。 ジェネリックユニットクラスでは、typeというintフィールドを作成します。ここには、特定のユニットタイプを格納します。 その後、それらを汎用リストとしてアレイリストに格納します。 リストからユニットを取得した後、タイプ値のswitch文を実行し、タイプフィールドのintに基づいて検索ユニットを適切なタイプにキャストします。

関連する問題