我正在尝试将两个分开固定距离的 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);
但是,当我移动一个身体时,另一个身体会保持在原来的位置。