Libgdx Box2d RopeJoint错误-修复或替代解决方案?

Libgdx Box2d RopeJoint错误-修复或替代解决方案?,libgdx,box2d,Libgdx,Box2d,我想做的是创造绳子游戏。下面你可以找到一部电影,它现在是什么样子 我正在使用RopeJoint,我正在减少每帧的maxLength,以便能够加速。一切似乎都很好,但问题出现在泡泡球上。我意识到缩短绳子不会增加球的速度。例如,如果我将绳子完全垂直,唯一的“力”来自缩短绳子,则速度为0,0。好像,身体运动不是模拟的 我放开绳子后,动量就消失了。气泡可以飞,但绳索缩短的因素被忽略了 我不知道你是否明白我的意思。这部电影应该更清楚地说明这一点 我尝试过的变通方法: 好主意是使用棱柱点,但旋转是固定的

我想做的是创造绳子游戏。下面你可以找到一部电影,它现在是什么样子

我正在使用RopeJoint,我正在减少每帧的maxLength,以便能够加速。一切似乎都很好,但问题出现在泡泡球上。我意识到缩短绳子不会增加球的速度。例如,如果我将绳子完全垂直,唯一的“力”来自缩短绳子,则速度为0,0。好像,身体运动不是模拟的

我放开绳子后,动量就消失了。气泡可以飞,但绳索缩短的因素被忽略了

我不知道你是否明白我的意思。这部电影应该更清楚地说明这一点

我尝试过的变通方法:

  • 好主意是使用棱柱点,但旋转是固定的,所以 不起作用。我不会荡秋千
  • 另一个想法是使用车轮接头并利用其频率 参数然而这里有一个问题,绳子变成了橡胶。 摇摆的感觉不好,当它能延伸超过初始长度时,它会 应该总是缩短
我看到了解决方案,但它们不可用

  • 绳索关节,防止身体动量因绳索缩短而减少
  • 无固定旋转的棱柱点
  • 车轮接头,可设置最大长度或使用其最大长度而不是静止位置创建绳索

    • 我想与您分享我最终是如何处理的

    • 我通过设置速度和角度来拍摄一个“ropeBullet”,它是一个小的圆形box2d物体。我渲染了子弹和球之间的绳索图形
    • 当子弹到达墙壁时,我从接触点开始
    • 我根据子弹中心和接触点,用旋转点连接子弹和墙壁。由于这种解决方案,子弹可能会旋转,并在绳子上摆动
    • 在绳子的另一端,我创造了类似圆形物体的“转子”。它始终通过另一个指向两个中心的旋转点与球体相连。它允许球自由旋转
    • 现在我用棱柱连接ropeBullet和转子。轴i通过计算它们之间的向量并对其进行规格化来设置
    • 我根据需要设置了棱柱关节限制、电机速度和最大作用力
    • 球被世界的引力所触碰,所以我不得不再耍一个把戏使它令人满意。我描述了box2d reddit上的问题和技巧,因此我参考了它: