2011-11-10 13 views
-2

を参照:http://download.oracle.com/javase/7/docs/api/java/util/Vector.html#addElement(Eのjava.util.Vector <E>通行止め

私は小惑星のようなジャワのゲ​​ームのためのクラスを記述する必要が私のOOPクラスの割り当てを持っています。 xとyの位置だけでなく、ショットと彗星のxとyの速度を表すためにベクトルを使用する必要があります。したがって、初期化されると、次のようになります。「パブリックベクターショット」; 「公的なベクトルの彗星」と呼ばれています。 updateShots()内のforループが呼び出されたときにshots.size()がゼロにならないようにする問題があります。したがって、実際にショットが実行される部分には到達しません。私がベクトルに要素を追加しようとするたびに、その要素は "Shot"型でなければならず、ダブルをその型に変換できないことがわかります。私は何時間も何時間もオンラインで検索しており、Vector、String、Integer、ObjectをVectorクラスのバインディングとして使用しないものは見つかりませんでした。 Shot.classやそのクラスに追加する必要があるものと関係があると思います。私は何の問題があるのか​​を説明するために私がここに投稿できるコードが何であるかは分かりません。

これはファイルのセットアップ方法です。CometsMain.javaはメインのJavaファイルです。 SpaceObjectsは3つのサブクラスを持つ全体的なクラスです。 Comet、Ship、およびShotはSpaceObjectの3つのサブクラスで、それぞれSpaceObjectを拡張しています。 Cometはこの時点で重要ではない3つのサブクラスを持っています。

私はCometsMain.javaにある初期設定で指定しました。 Shipクラスには、 "Shot fire()"というメソッドがあり、新しいショットが返されます。 Shotクラスは実際に弾丸の動きを制御する "move()"メソッドを処理します。私は現在、実際のShotクラスの中でmove()内のショットのためのすべてのベクトル関連のコードを持っていますが、Ship.class内のShot fire()メソッドですべてが必要かどうかはわかりません。

あなたが私に投稿したいコードや他の情報が必要であることを教えてください。

+0

tl; dr - 問題があることを示すコードを投稿してください。 –

+0

あなたの質問は長すぎて不明です。問題がベクトルに物事を追加している場合は、エラー、エラーを生成するコード、エラーに関連するオブジェクトの定義を確認する必要があります。 – madth3

+0

私は、完全な間違った場所にベクトルを追加していたので、私が得ていたエラーはあまりにも漠然としていて、内部にあるコードの小さな部分を知ることができませんでした。私はそれを考え出した、ありがとう! – Hank

答えて

1

これにはJavaのVectorクラスを使用すべきではありません。あなたの割り当ては、(java.util.Vectorが属する)Javaコレクションフレームワークの意味ではなく、数学的な意味でのベクトルを使用することです。あなたは独自のベクトルクラスを定義することができます(望ましい)、またはベクトルとして2つのintの配列を使用するだけです。クラスの名前をVectorにすることもできます。コンパイラはjava.util.Vector(またはjava.util。*)をインポートしない限り、どちらを使用するかを認識します。 java.util.Vectorをインポートする必要がある場合は、ベア名Vectorの代わりに完全修飾クラス名を使用するだけで済みます。

+0

私の先生は、特にjava.util.Vectorクラスの使用を教えてくれました。私はこのVectorクラスを使用することになっており、私はそれを理解しました。私は間違った場所にベクターに追加しようとしていたコードを持っています。私はサブクラスではなく、メインのJavaファイルでそれを持っていた。また、私はクラスを呼び出す方法を考え出しました。私は "shots.add(ship.fire());"メインのJavaで "Shot fire();"メソッドはShipクラスの中で "new Shot(....)"を返して、ショットをベクトルに追加します。あなたのお手伝いをありがとう、私の元の記事の説明は、私はその時までにそれから少しだったに従うのは難しい場合は申し訳ありません。 – Hank

関連する問題