Поворотное соединение с коробкой box2d, колесо не вращается вокруг своей оси

Я пытаюсь использовать вращающиеся соединения на сервере 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. Я использую box2d из: https://www.npmjs.com/package/box2dweb

0 ответов

Другие вопросы по тегам