1

固定距離で離れている 2 つの box2d ボディを結合しようとしています。どちらのボディも自分自身を回転させることはできず、結合も回転する必要があります。ボディ間のギャップは、他のボディが通過できるようにする必要があります。

現在、次のような b2revoluteJoint セットアップがあります。

b2RevoluteJointDef rjd;
rjd.lowerAngle = 0.0f;
rjd.upperAngle = 0.0f;
rjd.Initialize(body2, body1, body2->GetPosition());
rjd.collideConnected = false;
world->CreateJoint(&rjd);

ただし、ジョイントは完全に固定されているわけではなく、ボディは互いに相対的にかなり動く傾向があります。これを行うより良い方法はありますか?

b2WeldJoint も試しましたが、両方のボディが重なっている必要があると想定しているため、機能しませんでした...

編集:

私が試したb2WeldJointは次のとおりです。

b2WeldJointDef wj;
wj.Initialize(body1, body2, body1->GetWorldCenter());
world->CreateJoint(&wj);

しかし、一方の体を動かすと、もう一方の体はその位置にとどまります。

4

1 に答える 1