2010-12-10 9 views
2

私は、ユーザーが発射体の角度と速度を定義する点で、火球やポケットタンクの血管にjavaでタンクゲームを作ろうとしています。私は、発射システムに風速を導入するための方法についてインターネットを見てきました。どのように発射速度に風速を加えますか?発射動作における風速の実現?

私のプログラムは、到達した最大の高さ、最終ポイントに到達するまでの合計時間、および発射された発射物の角度を考慮に入れて、速度のX加速およびY加速を計算します。

答えて

3

発射動作に風速をどのように追加しますか?

drag force = A * | Δ v | * Δ v *(表面積)+ B * Δ v *表面積、Δ v =(風速) - (発射速度)を計算し、それをシミュレーションの他の力に加えます。 (そして、ニュートンの法則(Σ F = ma)を使って加速を計算してください)

表面積は風にさらされる有効面積です。たとえば、発射体が円盤状の場合、風がディスクの面で吹いている場合は非常に高い抗力がありますが、ディスクに風が吹いている場合は抗力が低くなります。

これには、ドラッグトルク(非ゼロ正味トルクを引き起こす発射体の異なる点で加えられる力、したがって発射体の角運動量の変化)は含まれないことにも留意されたい。風車や落葉のメープルシードで。それはおそらくドラッグ力よりもモデル化するのがずっと難しいでしょう。

+0

あなたのゲームでは、(発射速度)^ 2 *(表面)*(発射面係数)のようなものを使用します。ここで、「発射面係数」は約0.3程度の値です。あなたの決定の1つは、私が "発射体の顔面の要素"と呼んでいるものを設定することです。この値は1未満でなければなりません。なぜなら、あなたのゲームはおそらく撃墜板ではないからです。 – DwB

+0

ありがとうございました! – user525479

2

単純にする風が発する方向に基づいて水平方向の速度を加算または減算する方法は、発射物が移動する方向と比較していかがですか。

尾部風であれば、尾部風が発射体自体に寄与する最高速度に達するまで時間とともにある一定の速度を加算し、それ以外は頭部風にはほとんど当てはまります証明人の水平飛行体との一定の角度は、十分高い速度の頭部風が水平速度を逆転させる可能性がある。

発射体が長時間放置されているほど、風が魔法を働かなくてはなりません。

2

ドラッグ力を使用する代わりに、通常の力をかけるだけで済みます。あなたのオブジェクトがすべて同じサイズと形状(十字形の形状)であれば、Fを選択してその力を速度計算に適用します。

関連する問題