マウス ジョイントを含む Box2d iphone アプリ (cocos2d を使用) があり、マウス ジョイントを使用するたびに、クリックしたポイントでオブジェクトに力が適用されます。オブジェクトの特定のポイント、たとえばオブジェクトの中心に常に力を適用する方法があるかどうか疑問に思っていました。その理由は、たとえばマウス ジョイントを使用してそれを拾うと、私の形状がボックスの場合、クリックした場所が上に向かうように回転するからです。オブジェクトの中心など、常にオブジェクトを拾いたいと思います。慣性減衰力を上げてみましたが、思ったような効果が得られませんでした。これが私の現在のコードです:
b2Vec2 locationWorld = b2Vec2(newtouch.x/PTM_RATIO, newtouch.y/PTM_RATIO);
b2MouseJointDef md;
md.bodyA = physicsLayer.groundBody;
md.bodyB = touchedObject.body;
md.target = locationWorld;
md.maxForce = 2000;
b2World* w = [physicsLayer getWorld];
mouseJoint = (b2MouseJoint*)w->CreateJoint(&md);
touchedObject は私が移動しているオブジェクトであり、その本体をプロパティとして保存します。このコードはそのままで問題なく動作しますが、厄介な回転が発生するだけです。