我有一个包含许多精灵的图层。精灵在图层中执行自己的动作。我想将转换应用于该组。当然,它的孩子需要进行相同的调整。
我想我正在寻找一个矩阵,而libgdx似乎确实拥有它们。但是我不明白如何将它应用到我的libgdx sprite中。但如果这不是我需要的,那么我需要什么呢?
答案 0 :(得分:2)
所以从我所知道的,这里没有简单的解决方案(虽然,我现在没有访问libgdx,所以我没有测试任何东西)。
如果你需要做的就是跟踪翻译,最简单的方法是给你的图层一个位置(vector2或其他),并在计算你的精灵的位置时,用图层的位置来抵消它们。 / p>
如果您需要访问所有转换(旋转,缩放等),最好使用matrix3。 matrix3s允许您附加任意数量的变换(通过平移,缩放,旋转等),然后将您的位置乘以矩阵,以便应用这些变换。
例如,如果您使用名为' object'的Sprite对象,您的代码可能看起来像。
Matrix3 mat3 = new Matrix3();
//do your transformations
Vector2 vec2 = new Vector2(object.getX(), object.getY());
vec2.mul(mat3);
object.setPosition(vec2.x, vec2.y);
请注意,向量乘法函数会更改原始向量,因此如果您使用Vector2存储您的位置,您可能希望在应用转换之前创建它的副本