2012-04-03 6 views
0

私は、ミラーやレンズのような光学アイテムに基づいたゲームを開発しています。私には梁があります。ビームが光学アイテムに当たった場合、ビームは物理ルールに応じて反映されます。私は梁の方向を知っています。だから私は光学アイテムとの衝突を検出する必要があるので、反射を計算することはできません。ビームと光学アイテムとの衝突を検出するために光学アイテムをjavaに実装する最善の方法は何でしょうか。 境界ボックスモデルが自分の状況に合わない。私はポリゴンを使うことを考えています。衝突点(x、y)を検出するのは簡単ですが、光学的な項目は回転できるので、角度と反射の計算は困難です。Javaで光学アイテムを実装する方法

お勧めですか?

答えて

1

Calculate the angle between the two lines鏡と梁。次に、ミラーの他の半分に同じ角度で反射ビームを描くだけです。

+0

主な問題は、湾曲したレンズとミラーです。斜面を検出するのは本当に難しいです。 – henderunal

+0

その時点で勾配は派生していませんか?その可能性は、ちょうど数学の魔術を取るだろう。 –

0

通常、UIを開発するときは、データモデルと、データモデルをレンダリングするビューがあります。

あなたの問題は少し異なります。ミラーを表すクラスと、レンズを表す別のクラスがあります。クラスのインスタンスは、オブジェクトの位置やオブジェクトが向いている方向などの状態情報を保持します。クラスメソッドは、ミラーとレンズの物理ルールを実装する責任があります。

ビュー描画ロジックは、データモデルをレンダリングするだけではなりません。インパクトを検出するためにオブジェクトのすべてのインスタンスをループさせ、物理ルールをビームに適用して次の場所を確認する必要があります。

ビーム源、レンズ、ミラーはすべてデータモデル内のオブジェクトですが、ビーム自体をビューに描画するたびに計算する必要があります。

+0

はい、まさに私がやっていることですが、問題はまだ答えられていません。 – henderunal

関連する問題