我使用这种方法在 libgdx 中旋转了一个图像,
SpriteBatch.draw(TextureRegion region, float x, float y, float originX, float originY, float width, float height, float scaleX, float scaleY, float rotation)
但我不知道如何获得旋转图像的坐标。
Sprite您可以使用一个(或您自己的跟踪其当前位置的对象),而不是在绘制时旋转纹理。
该draw调用不存储任何旋转结果,它只是在复制到屏幕时旋转纹理。该类Sprite将跟踪位置和旋转,以便您可以查询它。(你应该使用Sprite'draw方法来绘制它。)
这Sprite还将为您提供一个轴对齐的边界框。如果您想要纹理旋转角的精确位置,则需要getVerticies()从位置和旋转中提取或自行计算。
我不明白这个问题。我读了几次,但我什至没有得到你想知道的核心。如果您使用 spriteBatch.draw() 绘制图像,则绘制的图像将放置在第二个和第三个参数的坐标上,并围绕相对原点进行旋转/缩放。
如果您想知道图像在屏幕上绘制的位置,您应该考虑使用 camera.project(Vector3); 使用 3 维向量,其中 x,y 是图像的坐标,z = 0;向量将乘以相机的矩阵,因此 x,y 将成为屏幕坐标。
或者更好的是,您应该在绘制之前旋转图像。如果你这样做,你可以随时从你的精灵/图像对象获得旋转。