我如何在一个轴(x或y)上镜像物体的夹具,因为当我只想在一个轴上镜像时,会发生断言错误,但是当我在两个轴上镜像时,就不会出现问题。
public Vector2[][] getPolygons(String bodyName, float scaleX, float scaleY)
{
Vector2[][] vectors = null;
Element fixture;
Element semiPolygon;
float auxX, auxY;
this.element = reader.parse(xml);
fixture = this.element.getChildByName(bodyName);
vectors = new Vector2[fixture.getChildCount()][];
for(int child = 0; child < fixture.getChildCount(); child++)
{
semiPolygon = fixture.getChild(child);
vectors[child] = new Vector2[semiPolygon.getChildCount()];
for(int part = 0; part < semiPolygon.getChildCount(); part++)
{
auxX = semiPolygon.getChild(part).getFloatAttribute("x")*-scaleX;
auxY = semiPolygon.getChild(part).getFloatAttribute("y")*-scaleY;
vectors[child][part] = World.toGameCoordinates(auxX, auxY);
}
}
return vectors;
}
最佳答案
多边形顶点必须以逆时针顺序指定。每次对形状进行镜像时,缠绕顺序都将颠倒,因此仅使用一个镜像,顺序将向后,那么,如果您再次镜像它,就可以了,正如您所发现的那样。因此,如果仅在一个轴上镜像,则需要颠倒顶点的顺序。