我有一个演员需要旋转2次。每次都围绕着不同的起源。但似乎演员只使用setOrigin()和使用setRotation()设置的旋转来保存原点集,并在绘制时计算它。因此,如果我只是将这些值设置为2次,则只覆盖旧值,并且在绘制时不会计算它。有没有办法将不同来源的多重轮换联系起来?
答案 0 :(得分:1)
是的,你是对的,在画你的演员之前你不会看到结果,这是因为旋转不会对演员的坐标或其他东西进行任何变换。旋转只是一个普通值,只有当actor绘制它的图形或有人查询actor BoundingBox时才使用它。因此,每当有人需要时,所有旋转变换都会发生。
回到你的问题......如果你想对你的演员应用几个转换,你应该以某种方式积累它们,然后只改变一次演员的状态。
作为解决方案,您可以查看Group#applyTransform()
方法,它随Matrix4
提供,您可以灵活配置所有转换。当然,你必须把你的演员放在Group
对象中,这是一种利弊,但是为了获利,你将处理矩阵变换,这些变换不适用于普通Actor
。
希望这会有所帮助,祝你好运。