如何在ShapeRenderer LibGDX / Java中显示旋转的多边形

时间:2018-02-28 03:22:58

标签: java android libgdx

我正在制作一个简单的游戏,但我似乎无法旋转一个简单的多边形。我在下面做了一个测试。

我已在上面初始化了{ShapeRenderer shape)和(shape = new ShapeRenderer()

以下是我的代码。

    float x1 = 200;
    float y1 = 200;
    float x2 = 250;
    float y2 = 200;
    float x3 = 250;
    float y3 = 250;
    float x4 = 200;
    float y4 = 250;

    float[] f = {x1,y1,x2,y2,x3,y3,x4,y4};

    Polygon polygonTest = new Polygon();
    polygonTest.setVertices(f);
    polygonTest.setOrigin(x1+25,y1+25);
    polygonTest.rotate(-45f);

    shape.begin(ShapeRenderer.ShapeType.Line);
    shape.polygon(polygonTest.getVertices());
    shape.end();

This is the output

旋转后,我使用polygonTest.getRotation()仔细检查其旋转值,并返回正确的值。我也尝试过没有" f"参数中的(浮动)指示但没有运气。

我读过关于这个特殊问题的所有帖子刚刚提到setOrigin然后旋转,但它对我不起作用。

感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

getVertices()的{​​{1}}方法返回多边形的局部顶点而不进行缩放或旋转。

使用Polygon在缩放,旋转后返回多边形的顶点。

这是测试代码:

getTransformedVertices()