【发布时间】:2014-07-10 12:54:27
【问题描述】:
大多数简单的精灵以 90 度的间隔向上、向下、向左、向右移动,通常为每个方向使用不同的精灵表。
但是我想创建一个跟随鼠标/手指输入的精灵(但不在手指上,稍微慢一点)并使用适当的相关度数在轴上旋转,所以它总是跟随/看着手指,我还想包括 1 个用于精灵移动的精灵表。有没有办法旋转精灵以获得所需的效果?
【问题讨论】:
标签: java android libgdx sprite
大多数简单的精灵以 90 度的间隔向上、向下、向左、向右移动,通常为每个方向使用不同的精灵表。
但是我想创建一个跟随鼠标/手指输入的精灵(但不在手指上,稍微慢一点)并使用适当的相关度数在轴上旋转,所以它总是跟随/看着手指,我还想包括 1 个用于精灵移动的精灵表。有没有办法旋转精灵以获得所需的效果?
【问题讨论】:
标签: java android libgdx sprite
如果您使用SpriteBatch 来渲染精灵,那么您只需将旋转参数传递给绘图函数:
draw(TextureRegion region, float x, float y, float originX, float originY, float width, float height, float scaleX, float scaleY, float rotation)
要实现围绕精灵中心的旋转,originX 和 originY 应分别为精灵宽度和高度的一半。
【讨论】:
Input.getX()和Input.getY()获得触摸位置,然后使用一些基本的三角函数来找到精灵和触摸位置之间的角度,见stackoverflow.com/questions/9970281/…
Sprite extends TextureRegion,所以上面的调用应该可以工作(它是 SpriteBatch 的方法)。或者,您可以使用 Sprite 的方法:sprite.setRotation(float degrees),然后是 sprite.draw(Batch spriteBatch)。