我正在制作一个简单的游戏,但我似乎无法旋转一个简单的多边形。我在下面做了一个测试。
我已在上面初始化了{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();
旋转后,我使用polygonTest.getRotation()
仔细检查其旋转值,并返回正确的值。我也尝试过没有" f"参数中的(浮动)指示但没有运气。
我读过关于这个特殊问题的所有帖子刚刚提到setOrigin然后旋转,但它对我不起作用。
感谢任何帮助!
答案 0 :(得分:1)
getVertices()
的{{1}}方法返回多边形的局部顶点而不进行缩放或旋转。
使用Polygon
在缩放,旋转后返回多边形的顶点。
这是测试代码:
getTransformedVertices()