5

ContactListener衝突イベントをリッスンするために標準の Box2D を使用しています。私が欲しいのは、ボディ間の衝突の衝撃の強さを計算することです。

人々がそれをどのように計算するかについて、さまざまな説明を読みました。preSolveコールバックを使用するものもあれば、 を使用するものもありますpostSolve。を使用する人もいれば、を使用するManifold人もいContactImpulseます。最初のポイントの normalImpulse+tangentImpulse のみを取得するものもあれば、すべてのポイントの合計を取得するものもあれば、最大値を取得するものもあります。tangentImpulses を完全に無視する人もいます...

私はこの問題に頭を悩ませることができません。ときどきインパルスだけが入っpostSolveてきて、インパルスのpreSolve合計が 0 になることがあります。時々それは逆です。途方もなく高い値 (1E15 から 1E30 など) を取得することもあれば、途方もなく低い値 (-1E15 から -1E30 など) を取得することもあります。NaN衝動の1つが(数字ではない)だったというケースさえありました。

この問題を解決する方法と、それらの衝動を解釈する方法を説明できる人はいますか? または、Box2D を使用し、あらゆる種類のダメージ システムの影響を計算する必要があるオープン ソース ゲームを教えてください。

4

2 に答える 2

1

「途方もなく高い値 (1E15 から 1E30 など) を取得することもあれば、途方もなく低い値 (-1E15 から -1E30 など) を取得することもあります。」

方向によって、力は正または負になります。非常に剛体の場合、中程度の速度でも衝突すると、非常に大きな力/加速度 (絶対値) が発生する可能性があります。たとえば、時速 200 km で衝突する鋼鉄製の 2 つの球体を考えてみましょう。

于 2013-10-13T08:00:42.170 に答える