私は非常に初心者であり、これは実際にはプログラミングの質問ではありませんが、ここで、次のようなランプをロールアップするゲームを作成したいとします。
古いソニック・ザ・ヘッジホッグのゲームか何かで機能するのと同じように、上に移動するにはどうすればよいですか、これを学ぶための良い手段をどこで見つけることができますか?
私は非常に初心者であり、これは実際にはプログラミングの質問ではありませんが、ここで、次のようなランプをロールアップするゲームを作成したいとします。
古いソニック・ザ・ヘッジホッグのゲームか何かで機能するのと同じように、上に移動するにはどうすればよいですか、これを学ぶための良い手段をどこで見つけることができますか?
ランプを上ると、位置エネルギーが得られます。事実上、あなたの運動エネルギーは位置エネルギーに変わります。
K = 0.5 * m * v^2
P = 0.5 * m * g * h
どこ:
K
は運動エネルギーP
は位置エネルギーm
質量ですv
速度ですg
重力ですh
身長ですアニメートしているので、最も簡単な方法は、現在のフレームでの瞬間速度を使用して、次のフレームでの位置を推定することです。また、方程式を統合する必要がなくなります。
必要なのは高さの変更だけです。h0
から...に移動するとしましょうh1
。これにより、新しい運動エネルギーが得られます。これはK1
、速度が低下することを意味します。
K1 = 0.5 * m * v^2 - (h1-h0) * m * g
そして、新しい速度を取得するにはv1
:
0.5 * m * v1^2 = K1
= 0.5 * m * v^2 - (h1-h0) * m * g
0.5 * m * (v1^2 - v^2) = -(h1-h0) * m * g
v1 = sqrt( v^2 - (h1 - h0) * g )
次に、新しい位置を把握し、それをランプにクランプして、その位置でランプ法線を見つけます。x
それを使用して方向の単位ベクトルを調整し、そのベクトルに新しい速度を掛けて、新しいy
およびz
速度コンポーネントを取得します。