我正在尝试在node.js服务器中使用旋转关节,但是我的滚轮并没有围绕它自己的轴而是在身体周围。
这是我的代码:
var joint_def = new b2RevoluteJointDef();
joint_def.Initialize(this.body , wheel, wheel.GetWorldCenter());
//after enablemotor , setmotorspeed is used to make the joins rotate , remember!
joint_def.enableMotor = true;
joint_def.maxMotorTorque = 100000;
//this will prevent spinning of wheels when hit by something strong
joint_def.enableLimit = true;
joint_def.lowerAngle = -1 * max_steer_angle;
joint_def.upperAngle = max_steer_angle;
this.joint = world.CreateJoint(joint_def);
然后当我按下按钮时,我设置了这样的电机速度:
this.joint.SetMotorSpeed(10000);
轮子开始围绕身体中心旋转,但我想围绕它自己的中心旋转。
这是车身和车轮的设置:
'density' : 1.0 ,
'friction' : 0.0 ,
'restitution' : 0.2 ,
'linearDamping' : 0.0 ,
'angularDamping' : 0.0 ,
'gravityScale' : 1.0 ,
'type' : b2Body.b2_dynamicBody
我做错了什么?或许我应该使用不同的box2d实现。 我使用的是来自https://www.npmjs.com/package/box2dweb
的box2d