cocos2d-x box2d物理引擎深入研究 第一篇续

文件讲解旋转关节.

	b2RevoluteJointDef jdEx;
	//连接两个刚体 
	jdEx.bodyA = bodies[1];
	jdEx.bodyB = bodies[2];
	//是否允许两个刚体之间发生碰撞
	jdEx.collideConnected = bool(0);
	//关节把刚体A的锚点和刚体B的锚点连接起来。意思就是把刚体A锚点和刚体B的锚点重叠放在一起,然后一颗钉子钉下去,这颗钉子穿过两个锚点。
	jdEx.localAnchorA = bodies[1]->GetLocalCenter();
	jdEx.localAnchorB = bodies[2]->GetLocalCenter();
	//参考角度,他是刚体B的角度-刚体B的角度.所以他是一个相对角度. 
	jdEx.referenceAngle = 0.000000000000000e+00f;
	//是否使用限制. 连接器中的两个物体可以无限制的围绕锚点旋转,但是旋转关节也可以对旋转范围作出限制。可以对旋转的上限和下限作出设定
	jdEx.enableLimit = bool(0);
	//旋转关节限制的设置可以超过一个全旋转,比如说把一对lower/upper限制设置为-360,360,可以允许物体之间的相对旋转为两圈以内。
	jdEx.lowerAngle = 0.000000000000000e+00f;
	jdEx.upperAngle = 0.000000000000000e+00f;
	jdEx.enableMotor = bool(0);
	//期望达到的旋转速度,以in radians per second为单位.这是个逐渐达到的值.所以你想让车轮动起来就增加这个值,想突然刹车就设置这个值为0
	jdEx.motorSpeed = 0.000000000000000e+00f;
	//马达扭矩,这个对于一些人很陌生,马达扭矩其实就是关节转动的力,值越大就越快达到motorSpeed这个速度.所以想慢慢刹车就设置motorSpeed为0,设置maxMotorTorque为一个小值 ,想立即刹车就设置motorSpeed为0,设置maxMotorTorque为一个很大的值. 
	jdEx.maxMotorTorque = 0.000000000000000e+00f;
	joints[1] = m_world->CreateJoint(&jdEx);


 

你可能感兴趣的:(box2D,旋转关节)