gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 07:10:45 25 4
gpt4 key购买 nike

我想做的是制作绳索游戏。您可以在下面找到一部电影现在的样子。

https://youtu.be/QTULCGNF70I

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

在我松开绳子后,动量就消失了。气泡可以飞起来,但忽略了绳索缩​​短的因素。

不知道你明白我的意思了吗?电影应该更好地阐明它。

我尝试过的解决方法:

  • 好主意是使用 prismaticJoint,但旋转是固定的,所以它不起作用。我不会摇摆
  • 另一个想法是使用 wheelJoint 并利用它的频率范围。但是这里有一个问题,绳子变成了橡胶。摆动感不好,当它能伸出超过初始长度时,它应该总是只缩短。

我看到了解决方案,但没有可用

  • RopeJoint 保持绳索缩短时的 body 动量
  • 无固定旋转的 PrismaticJoint
  • WheelJoint 可以设置最大长度或创建最大长度的绳索,而不是静止位置。

最佳答案

我想和你分享一下我最后是如何处理的。

  1. 我通过设置它的速度和角度来发射一个“ropeBullet”,它是一个小的圆形 box2d 物体。我在子弹和球之间渲染绳索图形。
  2. 当子弹到达墙壁时,我从 contactListener 获取接触点
  3. 我根据子弹中心和接触点使用 revoluteJoint 连接子弹和墙。由于采用了这种解决方案,子弹可以在绳索上旋转和摆动。
  4. 在绳子的另一端,我创建了类似圆形体的“转子”。它始终通过另一个 revoluteJoint 连接到球体到两个中心。它允许球自由旋转。
  5. 现在我用 prismaticJoint 连接 ropeBullet 和转子。轴 i 通过计算它们之间的向量并对其进行归一化来设置。
  6. 我根据需要设置棱柱关节限制、电机速度和最大力。
  7. 这个球被世界的引力所触动,所以我不得不再做一个让球满意的把戏。我在 box2d reddit 上描述了问题和技巧,所以我引用了它:https://www.reddit.com/r/box2d/comments/gpdmoc/prismatic_joint_behaves_like_rubber/

关于libgdx - Box2d RopeJoint 错误 - 修复或替代解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61089704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com