libgdx-box2d翻转复合体

libgdx-box2d翻转复合体,libgdx,box2d,flip,Libgdx,Box2d,Flip,您好,我有一个box2d复合车身,该车身旨在成为侧面图中所示的车辆。当它向后移动时,我希望它朝向另一个方向,即在x轴上翻转/反射。有没有一个简单的方法可以做到这一点?我在谷歌上找不到任何东西,尽管由于其他单词反射的使用,有很多错误点击 我可以重新创建身体,但我必须做整个超时删除/添加的事情?而且似乎有点麻烦。我尝试了body.getFixtureList并设置了顶点,但该方法已被标记,因此不更改列表。这是否意味着不添加或删除?还是不编辑?不管怎样,屏幕上没有任何变化。去仔细检查我的代码 我遗漏了

您好,我有一个box2d复合车身,该车身旨在成为侧面图中所示的车辆。当它向后移动时,我希望它朝向另一个方向,即在x轴上翻转/反射。有没有一个简单的方法可以做到这一点?我在谷歌上找不到任何东西,尽管由于其他单词反射的使用,有很多错误点击

我可以重新创建身体,但我必须做整个超时删除/添加的事情?而且似乎有点麻烦。我尝试了body.getFixtureList并设置了顶点,但该方法已被标记,因此不更改列表。这是否意味着不添加或删除?还是不编辑?不管怎样,屏幕上没有任何变化。去仔细检查我的代码


我遗漏了什么吗?

更改顶点不起作用。唯一可行的办法就是按照你说的那样再造尸体。不要以为它会很慢,因为你必须删除它,然后再创建一次。Box2d可能可以在一个框架内创建100辆汽车,而无需太多努力

在整个翻转过程中,将顶点x分量缩放-1。如果顶点原点不在形状中心,则必须调整整个车辆的x坐标(或者将原点正确放置在第一个位置)


此外,在重新创建实体时,您可能希望保存原始实体的线速度和角速度。然后一旦你创造了新的物体,把这些速度应用到新的物体上。如果不这样做,则在翻转后会使车辆冻结。

使用getVertex对顶点进行签名并重置顶点不起作用。重建顶点数组并执行shape.set(newShape)看起来确实有效。我正在与原产地问题作斗争。正如我所说的那样,这是行不通的。你必须删除整个身体,然后用翻转的顶点重新创建。你只需要重新创建固定装置,而不是整个身体。还可以在主体上永久性地设置两组装置,并根据当前方向禁用其中一组(将非活动装置的碰撞遮罩位和密度设置为零等)。如果执行此操作,请确保重置MassData。