cocos2d-js:使用box2d在两个物体之间建立固定关节的最佳方法是什么?

时间:2014-05-01 21:06:30

标签: box2d cocos2d-x cocos2d-js

我正在寻找一种在两个身体之间建立固定关节的方法。我尝试了b2DistanceJointDef但它仍然会旋转。在这里使用约束?如果是这样的话?

或者更好地使用b2PrismaticJointDef并重新限制运动?

我的引擎是cocos2d-js 3.0a2

代码:

        var jointDef = new b2DistanceJointDef();
        jointDef.length = 1.0;
        jointDef.frequency = 0.0;
        jointDef.dampingRatio = 0.0;
        jointDef.bodyA = body;
        jointDef.bodyB = lastBody;
        var joint = this.world.CreateJoint(jointDef);

2 个答案:

答案 0 :(得分:0)

不幸的是,没有联合保证在两个身体之间提供100%固定的关系。如果焊接接头可以在该端口使用,或者您建议您也可以尝试使用棱柱形或旋转接头,则可以尝试使用非常高的力/扭矩值的电机,并将极限设置为相同的值。

答案 1 :(得分:0)

我用b2WeldJoint解决了它:

            var jointDef = new b2WeldJointDef();
            jointDef.referenceAngle = 0.0;
            jointDef.collideConnected = false;
            jointDef.bodyA = body;
            jointDef.bodyB = lastBody;
            jointDef.localAnchorA = body.tileOffset;
            jointDef.localAnchorB = lastBody.tileOffset;
            var joint = this.world.CreateJoint(jointDef);