Надежная фиксация двух корпусов 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);
Однако когда я двигаю одно тело, другое остается на своем месте.