-4

ユーザーが目的の選択を使用してゴールを投稿できるように、ユーザーが速度、角度、方位角を選択する必要があるサッカー ゲームを開発しています。ゲームの軌道パスを作成する方法として誰かが私を定式化できますか?解決策を見つけるために。

4

1 に答える 1

6

基礎物理です。Z が上にあると仮定すると、最初の X 速度と Y 速度は一定であり、(三角関数を使用して) 初期角度によって決定されます。Z コンポーネントは、重力によって完全に決定されます。仰角を取得し、(再び三角関数を使用して) コンポーネントに変換します。それが最初の Z 速度です。

これは、風、スピン、抗力を無視する最も単純な定式化です (つまり、ボールは飛行中に横方向に移動せず、重力のみに影響されます)。

vx = power * cos(elevation) * sin(azimuth);
vy = power * cos(elevation) * cos(azimuth);
vz = power * sin(elevation);

さて、時間の位置tは単純なニュートン物理学です:

x = vx * t;
y = vy * t;
z = vz * t - 0.5 * g * t * t;

重力はどこgにあるのか (9.81 m/s/s)

しかし、これらの式を直接使用しても、バウンスなどを計算することはできません。そのためには、段階的に計算する必要があります。つまり、小さな時間増分 ( dt) では、現在の位置と速度を取得して変更します。

vx;             // unchanged
vy;             // unchanged
vz -= g * dt;   // gravity
x += vx * dt;
y += vy * dt;
z += vz * dt;

Z 位置が地面より下にある場合はvz、跳ね返りを許可しません。サーフェスにヒットした場合も同様の反射を行います (サーフェスの法線に対してベクトルを反射します)。

飛行にスピン (マグナス効果) やその他の力の影響を与えたい場合は、さらに注意が必要です。また、ボールが跳ね返るたびにエネルギーが失われるため、反射を抑えたい場合もあります。

それはあなた次第です。私は基本を与えました、そしてそれが役立つことを願っています。

発射体の動きをよく読む必要があります。何か基本的な作業ができて、モーションをよりリアルにしたい場合は、スポーツ ボールの空気力学/流体力学を読んでください。Rabindra Mehta によるほとんどすべての本や記事が良い出発点になります。

于 2012-10-24T02:24:18.883 に答える