【发布时间】:2011-12-08 16:25:25
【问题描述】:
我正在尝试将两个相隔固定距离的 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);
但是,当我移动一个身体时,另一个身体会保持在原来的位置。
【问题讨论】:
标签: box2d physics-engine