LibGDX:如何在 LibGDX 中旋转后更改形状的 X Y 坐标?

LibGDX: How do I change a shapes X Y co-ordinates after rotating it in LibGDX?

我正在通过 LibGDX 制作游戏并在 Eclipse 中使用 Java。我正在使用 ShapeRenderer class 创建一个普通矩形并连续旋转它。我正在使用 LibGDX 文档给出的逻辑来旋转矩形:

http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/graphics/glutils/ShapeRenderer.html#identity--

绘制矩形是通过以下方式完成的:

shapeRenderer.rect(x, y, width, height);

但是文档中给出的旋转矩形的例子需要如下代码:

shapeRenderer.rect(-width / 2, -height / 2, width, height);

你可以看到旋转形状的代码需要 "x" 和 "y" 参数来获得矩形的宽度和高度,这意味着我无法控制我想要放置的位置矩形在旋转时(假设矩形确实按照我想要的方式旋转到我想要的位置)。由于此代码,矩形的 POSITION 现在与其 SIZE 成正比。有没有办法解决这个问题,因为我需要给矩形一个给定的大小和一个不同的 x,y 坐标。提前谢谢你。

您使用 "translate" 将矩形放置在旋转后您想要的位置。从文档中绘制一个在 20、12、2 处沿 z 轴旋转的矩形,您可以执行以下操作

shapeRenderer.begin(ShapeType.Line);
shapeRenderer.identity();
shapeRenderer.translate(20, 12, 2);
shapeRenderer.rotate(0, 0, 1, 90);
shapeRenderer.rect(-width / 2, -height / 2, width, height);
shapeRenderer.end();