ContactListener
衝突イベントをリッスンするために標準の Box2D を使用しています。私が欲しいのは、ボディ間の衝突の衝撃の強さを計算することです。
人々がそれをどのように計算するかについて、さまざまな説明を読みました。preSolve
コールバックを使用するものもあれば、 を使用するものもありますpostSolve
。を使用する人もいれば、を使用するManifold
人もいContactImpulse
ます。最初のポイントの normalImpulse+tangentImpulse のみを取得するものもあれば、すべてのポイントの合計を取得するものもあれば、最大値を取得するものもあります。tangentImpulses を完全に無視する人もいます...
私はこの問題に頭を悩ませることができません。ときどきインパルスだけが入っpostSolve
てきて、インパルスのpreSolve
合計が 0 になることがあります。時々それは逆です。途方もなく高い値 (1E15 から 1E30 など) を取得することもあれば、途方もなく低い値 (-1E15 から -1E30 など) を取得することもあります。NaN
衝動の1つが(数字ではない)だったというケースさえありました。
この問題を解決する方法と、それらの衝動を解釈する方法を説明できる人はいますか? または、Box2D を使用し、あらゆる種類のダメージ システムの影響を計算する必要があるオープン ソース ゲームを教えてください。