我如何在一个轴(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;
}

最佳答案

多边形顶点必须以逆时针顺序指定。每次对形状进行镜像时,缠绕顺序都将颠倒,因此仅使用一个镜像,顺序将向后,那么,如果您再次镜像它,就可以了,正如您所发现的那样。因此,如果仅在一个轴上镜像,则需要颠倒顶点的顺序。

10-06 09:55