ユーザーが発射体の角度と速度を定義するという点で、Scorched Earth または Pocket Tanks の流れでJavaでタンク ゲームを作成しようとしています。発射体システムに風速を実装する方法をインターネットで調べました。発射体の動きに風速を追加するにはどうすればよいですか?
私のプログラムは、速度の X 加速度と Y 加速度を計算するだけでなく、到達した最大高さ、最終点に到達するまでにかかった合計時間、および発射された発射体の角度を考慮に入れます。
ユーザーが発射体の角度と速度を定義するという点で、Scorched Earth または Pocket Tanks の流れでJavaでタンク ゲームを作成しようとしています。発射体システムに風速を実装する方法をインターネットで調べました。発射体の動きに風速を追加するにはどうすればよいですか?
私のプログラムは、速度の X 加速度と Y 加速度を計算するだけでなく、到達した最大高さ、最終点に到達するまでにかかった合計時間、および発射された発射体の角度を考慮に入れます。
発射体の動きに風速を追加するにはどうすればよいですか?
抗力= A * |Δv|を使用してみてください。* Δv * (表面積) + B * Δv * 表面積、ここで Δv = (風速) - (発射体の速度) であり、それをシミュレーションの他の力に追加します。(そして、ニュートンの法則 (ΣF = ma) を使用して加速度を計算します)
表面積は風にさらされる有効面積であることに注意してください。たとえば、発射体が円盤状の場合、円盤の面に風が吹いている場合は非常に高い抗力が発生しますが、風が円盤を横切って吹いている場合は抗力が低くなります。
また、これには風車やカエデの種などのドラッグ トルク (発射体のさまざまな点に適用される力が正味のトルクを引き起こし、したがって発射体の角運動量が変化する) は含まれないことに注意してください。おそらく、抗力よりもモデル化がはるかに難しいでしょう。
簡単にするために、発射体が移動する方向と比較して、風が来る方向に基づいて水平方向の速度を加算または減算するのはどうですか。
それが追い風である場合、追い風が発射体自体に寄与できる最大速度に達するまで、時間の経過とともに一定量の速度が追加されます。同じことが向かい風の場合にもほぼ当てはまります。発射体の水平速度 十分に高い速度の向かい風は、水平速度を逆転させる可能性があります。
発射物が空中に長く留まるほど、風がその魔法を働かせる時間が長くなります。
または、ドラッグ フォースを使用する代わりに、通常のフォースを実装することもできます。オブジェクトがすべて同じサイズと形状 (断面形状) である場合は、F を選択して、その力を速度計算に適用します。