【发布时间】:2013-04-23 09:43:23
【问题描述】:
我已经使用这个方法在 libgdx 中旋转了一张图片,
SpriteBatch.draw(TextureRegion region, float x, float y, float originX, float originY, float width, float height, float scaleX, float scaleY, float rotation)
但我不知道如何获得旋转图像的坐标。
【问题讨论】:
我已经使用这个方法在 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 将成为屏幕坐标。
【讨论】:
或者更好的是,您应该在绘制之前旋转图像。如果你这样做,你可以随时从你的精灵/图像对象获得旋转。
【讨论】: