1

タイプ b2_kinematicBody のプラットフォーム (ボックス) があり、linearVelocity で移動しています。私はb2_dynamicBodyであるボールを持っています。

ボールがプラットフォームに着地すると、ボールは同じ位置にとどまり、プラットフォームと一緒に移動しません。 ここに画像の説明を入力

問題を示すこの小さなビデオを確認してください ----->>> https://vimeo.com/109238152

すでに両方のオブジェクトの摩擦が増加していますが、結果はありません。私が現在考えている唯一の解決策は、これら 2 つの時間の経過とともに接触することです。これは正しい解決策ですか?

Thx事前にクリス

PS: c++ で box2d の最新バージョンでテスト済み

4

1 に答える 1

1

常にプラットフォームから転がり落ちる理由について話している場合は、停止する転がり摩擦 (表面摩擦と混同しないでください) がないためである可能性があります。転がり摩擦は、非常に強く空気を入れたタイヤが少し平らなタイヤよりも長く転がる理由です。エネルギーは、ゴムが回転するときにゴムを押しつぶすのに消費されます。Box2D のフィクスチャは完全に固定されていますが、これは現実の世界では不可能です。したがって、この円は、それよりも摩擦が少ないことを除けば、鉄の列車の線路の上を転がる鉄の列車の車輪のようなものです。

円のボディに約 0.5 の角度減衰値を設定してみてください。それは少し多すぎるかもしれませんが、それはあなたにアイデアを与えるはずです. 角度減衰が大きいと、空中では速度が低下しすぎて、不自然に見える場合があります。その場合、何かに触れているかどうかに応じて、角度減衰を動的に調整できます。

于 2014-10-17T18:59:51.707 に答える