Надежная фиксация двух корпусов box2D

Я пытаюсь соединить два тела 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);

Однако когда я двигаю одно тело, другое остается на своем месте.

Ответы на вопрос(1)

Ваш ответ на вопрос