将两个box2D机身牢固地固定在一起

时间:2011-12-08 16:25:26

标签: box2d physics-engine

我正在尝试将两个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);

然而,当我移动一个身体时,另一个身体保持在其位置。

1 个答案:

答案 0 :(得分:0)

  

我也尝试了b2WeldJoint,因为我认为两个物体都必须重叠,所以它不起作用......

据我所知,身体的形状不一定要重叠。据我了解您的设置,焊接接头是合适的,因为它禁止所有相对平移和旋转。