Android 当达到极限时,libgdx中的旋转关节不向后旋转(不工作)。如何基于用户触摸控制旋转关节

Android 当达到极限时,libgdx中的旋转关节不向后旋转(不工作)。如何基于用户触摸控制旋转关节,android,libgdx,box2d,Android,Libgdx,Box2d,我一直在研究如何使用box2d在libgdx中基于用户触摸控制旋转关节,旋转关节在到达上角后停止。是否有方法控制旋转关节 ` jd = new RevoluteJointDef(); jd.initialize(bodyPivot, boxBody, anchor); jd.lowerAngle = 0.75f * (float)3.14; // -90 degrees jd.upperAngle = 0.75f * (float)3.14; // 4

我一直在研究如何使用box2d在libgdx中基于用户触摸控制旋转关节,旋转关节在到达上角后停止。是否有方法控制旋转关节

   `
     jd = new RevoluteJointDef();
     jd.initialize(bodyPivot, boxBody, anchor);

    jd.lowerAngle = 0.75f * (float)3.14; // -90 degrees
    jd.upperAngle = 0.75f * (float)3.14; // 45 degrees
    jd.collideConnected=false;
    jd.enableLimit = true;
    jd.maxMotorTorque = 1000.0f;
    jd.enableMotor=false;
    jd.motorSpeed = 0f*(float)3.14;
    rj = (RevoluteJoint) world.createJoint(jd);`

我尝试使用
rj.enableMotor(true)
,但它不起作用

创建关节时,在指定限制时,主体之间的当前相对角度为零

如果关节始终沿同一方向旋转,则限制实际上不会改变,因为就限制而言,新的起点现在为零

jointDef.upperAngle = MathUtils.PI;
jointDef.lowerAngle = 0;//the position when joint was created
但是,如果关节应该在下降之前旋转回原始位置,它将类似于:

jointDef.upperAngle = atTop ? 0 : MathUtils.PI;
jointDef.lowerAngle = atTop ? -MathUtils.PI : 0;

我从

中找到了答案,当创建关节时,在指定限制时,主体之间的当前相对角度为零

如果关节始终沿同一方向旋转,则限制实际上不会改变,因为就限制而言,新的起点现在为零

jointDef.upperAngle = MathUtils.PI;
jointDef.lowerAngle = 0;//the position when joint was created
但是,如果关节应该在下降之前旋转回原始位置,它将类似于:

jointDef.upperAngle = atTop ? 0 : MathUtils.PI;
jointDef.lowerAngle = atTop ? -MathUtils.PI : 0;
我从中找到了答案