Libgdx Box2d - 焊接接头旋转失控(蓝线是否意味着什么?)

时间:2016-03-15 23:40:25

标签: java libgdx box2d

我昨天开始玩box2d了,我遇到了我的车失控的情况

所以这就是我的车辆的样子:

正方形和三角形用WeldJoint(下面显示的红色圆圈)焊接在一起

圆圈通过RevoluteJoint连接到三角形(蓝色圆圈如下所示)

enter image description here

我知道车轮+三角形是有效的,因为它们可以自行完成 我也知道焊接在一起的方块很好,因为它们自己也很好用

然而问题是我将三角形焊接到正方形,一切都变得混乱。以下图像总结了之后发生的事情:

enter image description here enter image description here

最终会发生这种情况:

enter image description here

我似乎无法找到什么错误。我搜索了一些关于在box2d中失控的焊接物体的信息,但是,我只发现了人们决定尝试改变box2d中的时间步长的情况。我把时间保持在1 / 60f并且从未改变过。

我怀疑蓝线出了什么问题?什么是蓝线?任何帮助表示赞赏

P.S。我宁愿不把我的代码放在这里,因为我花了7个班来做这个...所以如果我试着在这里发布它们会非常混乱。我可以发布它的一部分,但我不知道我需要展示哪些部分。

1 个答案:

答案 0 :(得分:0)

有2个错误

  1. 关节没有连接立方体上的正确点,请注意weldJointDef.localAnchorA.set(anchor1); weldJointDef.localAnchorB.set(anchor2);

  2. 身体凝聚在所有蓝线相交的角落,方块是固定装置。固定装置不与身体对齐。由于距离,固定装置和身体之间的距离,当固定装置撞到某物时,力量会通过身体放大,并且关节变得疯狂