Fixando dois corpos box2D juntos de forma segura

Estou tentando unir dois corpos box2d que são separados por uma distância fixa. Ambos os corpos não podem girar a si mesmos, e a união também deve ter que girar. O espaço entre os corpos precisa permitir a passagem de outros corpo

Atualmente, tenho uma configuração b2revoluteJoint assim:

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

No entanto, a junta não é completamente rígida e os corpos tendem a se movimentar um pouco mais um em relação ao outro. Existe uma maneira melhor de fazer isso

Eu também tentei o b2WeldJoint, que não funcionou, pois presumo que os dois corpos estejam sobrepostos ...

EDITAR

The b2WeldJoint que eu tentei é:

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

No entanto, quando movo um corpo, o outro permanece em sua posiçã

questionAnswers(1)

yourAnswerToTheQuestion