box2d でマウスジョイントを使用してボディをドラッグしていますが、慣性遅延が発生します。
体を瞬時にドラッグする方法はありますか?
解決策は、b2MouseJointDefのプロパティfrequencyHzとdampingRatioを調整することです。
例えば:
b2MouseJointDef md;
md.body1 = _groundBody;
md.body2 = body;
md.target = p;
md.maxForce = 10000.0f * body->GetMass();
md.dampingRatio = 0;
md.frequencyHz = 100;
_world->CreateJoint(&md);
Processing/Box2d ライブラリに pong スタイルのゲームを実装しようとしていますが、同じ問題が発生すると予想されます。思いつくのは、Box2d の世界に隠されたオブジェクト、従来の方法でジョイントを操作するオブジェクトを保持し、フレーム遅延なしでマウスに追従する仮想オブジェクトを描画することです。これは、ユーザーをだますのに十分な場合があります。
一方、Box2d は厳密な物理シミュレーションではなく、オブジェクトのオーバーラップをある程度許容できるため、これを行う方法があるはずです。