Libgdx scene2d围绕不同的起源进行多次旋转

时间:2014-08-11 11:57:02

标签: rotation libgdx scene2d

我有一个演员需要旋转2次。每次都围绕着不同的起源。但似乎演员只使用setOrigin()和使用setRotation()设置的旋转来保存原点集,并在绘制时计算它。因此,如果我只是将这些值设置为2次,则只覆盖旧值,并且在绘制时不会计算它。有没有办法将不同来源的多重轮换联系起来?

1 个答案:

答案 0 :(得分:1)

是的,你是对的,在画你的演员之前你不会看到结果,这是因为旋转不会对演员的坐标或其他东西进行任何变换。旋转只是一个普通值,只有当actor绘制它的图形或有人查询actor BoundingBox时才使用它。因此,每当有人需要时,所有旋转变换都会发生。

回到你的问题......如果你想对你的演员应用几个转换,你应该以某种方式积累它们,然后只改变一次演员的状态。

作为解决方案,您可以查看Group#applyTransform()方法,它随Matrix4提供,您可以灵活配置所有转换。当然,你必须把你的演员放在Group对象中,这是一种利弊,但是为了获利,你将处理矩阵变换,这些变换不适用于普通Actor

希望这会有所帮助,祝你好运。