我在gdx-test中运行了StageTest.java示例,当我点击旋转时,this video是结果。
它不仅可以旋转组并移动它,这是一个错误吗? 还有一个问题来源于libgdx,libgdx的起源是什么?在我看来它喜欢枢轴,对吗?这意味着
但是有时我看到原点会移动纹理,例如:
batch.draw(texture,x,y,originX,originY ..... );
纹理的最终位置将是
(x+originX); (y+originY)
答案 0 :(得分:0)
无法真实再现群组的动作。但请注意,除了每个图像本身旋转外,还有5组旋转。注释掉以下部分:
for (int i = 0; i < len; i++)
if (rotateSprites)
stage.getGroups().get(i).rotation += Gdx.graphics.getDeltaTime();
else
stage.getGroups().get(i).rotation = 0;
这将禁用组旋转。也许这给了一些见解。从你的视频中我看到你的图像似乎围绕着它们的右上角旋转,也许这也是欺骗。但一般来说,图像和组将围绕其原点旋转(如枢轴)。
在上面的draw(...)
方法中,纹理最初将放置在(x, y)
的给定(width, height)
,然后缩放并围绕(originX, originY)
旋转。
答案 1 :(得分:0)
所有这些都是正确的:
这不是:
但是有时我看到原点会移动纹理,例如:
batch.draw(texture,x,y,originX,originY .....);
纹理的最终位置将是
(X + originX); (Y + originY)
接收原点的this draw方法是使用它来进行缩放和旋转(这就是为什么这个方法也接收缩放和旋转)。如果你希望它以原点位于其中心进行旋转,这就可以解决问题:
batch.draw(region, x, y, width/2F, height/2F, width, height, 1, 1, rotation);