我正在尝试将两个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);
然而,当我移动一个身体时,另一个身体保持在其位置。
答案 0 :(得分:0)
我也尝试了b2WeldJoint,因为我认为两个物体都必须重叠,所以它不起作用......
据我所知,身体的形状不一定要重叠。据我了解您的设置,焊接接头是合适的,因为它禁止所有相对平移和旋转。