b2RevoluteJoint 转动的关节,物体绕着一个东西转动。这里我把转动的点设为一个定点,我感觉box2d里相对物体也用的挺多的 .
效果如图:
代码如下:
// 转动关节
b2RevoluteJoint * revolutejoint;
b2RevoluteJointDef rjd;
rjd.collideConnected = true;
{
//这是设置 驱动力,以及转动最大的速度
rjd.motorSpeed = -4;
rjd.maxMotorTorque = 40;
rjd.enableMotor=true;
}
rjd.Initialize(groundBody,bodyB,bodyB->GetWorldCenter());//前两个参数设置要转的body和相对的body,第三个指位置。
revolutejoint = (b2RevoluteJoint*)world->CreateJoint(&rjd);
{
//设置limit 让节点在一定的范围内转动
// revolutejoint->SetLimits(0, 3.14/6);
// revolutejoint->EnableLimit(true);
}
这里有两个点:一个是转动的角度的限制,一个是动力和最大的速度,可以通过注释掉来看到效果。