我使用这种方法在 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 将成为屏幕坐标。
或者更好的是,您应该在绘制之前旋转图像。如果你这样做,你可以随时从你的精灵/图像对象获得旋转。