【问题标题】:Libgdx scene2d multiple rotations around different originsLibgdx scene2d 围绕不同原点进行多次旋转
【发布时间】:2014-08-11 11:57:01
【问题描述】:

我有一个演员需要旋转 2 次。每次围绕不同的起源。但似乎演员只是用 setOrigin() 保存原点集,用 setRotation() 保存旋转集,并在绘制时计算它。因此,如果我只是将这些值设置为 2 倍,它只会覆盖旧值并且在绘图时不计算它。有什么方法可以围绕不同的原点进行多次旋转?

【问题讨论】:

    标签: rotation libgdx scene2d


    【解决方案1】:

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

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

    作为解决方案,您可以查看Group#applyTransform() 方法,它与Matrix4 一起提供,您可以在其中灵活配置所有转换。当然,您必须将您的演员放在 Group 对象中,这是一种缺点,但在利润方面,您将处理一个矩阵转换,该矩阵转换不适用于普通的 Actor

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

    【讨论】:

    • 谢谢你的答案。这也可能是一个解决方案。我通过改变持有演员的整个团队来实现它。不得不解决其他一些问题。我认为一个好的解决方案可能是只插入一个额外的组,该组只包含需要围绕两个不同原点旋转的演员。将一个原点设置为 actor,将另一个原点设置为持有它的辅助组,并设置不同的旋转,一个给组,一个给演员。
    猜你喜欢
    • 2014-12-31
    • 1970-01-01
    • 2019-08-30
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多