# 旋转

你可以给精灵的rotation属性设置为一个弧度值来让它旋转。

cat.rotation = 0.5;
1

但是绕着哪个点旋转呢?

您已经看到,精灵的左上角表示它的xy位置。这个点叫做锚点(anchor)。如果你将精灵的rotation属性设置为类似于0.5的值,旋转将会在精灵的锚点附近发生。下图显示了锚点对我们的猫精灵产生的影响。

;

你可以看到锚点,猫的左耳,猫围绕这个锚点旋转。如果你想让精灵绕着它的中心旋转呢?改变精灵的锚点,使它位于精灵的中心,就像这样:

cat.anchor.x = 0.5;
cat.anchor.y = 0.5;
1
2

anchor.xanchor.y值表示纹理尺寸的百分比,从0到1(0%到100%)。将它设置为0.5,使纹理在点上居中。点本身的位置不会改变,只会改变纹理的位置。

下图是一个已经旋转过的精灵,然后使锚点居中的效果。

你可以看到精灵的纹理向上并向左移动。这是一个需要记住的重要副作用!

就像positionscale一样,您可以用一行代码来设置锚点xy值,如下所示:

cat.anchor.set(x, y)
1

精灵还有一个类似于锚点的pivot属性。

pivot轴心点设置了精灵的原点。

如果你改变了它,然后旋转精灵,精灵会绕着原点旋转旋转。下面把精灵的pivot.xpivot.y都设置为32:

cat.pivot.set(32, 32)
1

假设精灵是64x64像素,精灵现在会绕着它的中心点旋转。

但是请注意

如果你改变一个精灵的原点,你也就改变了它的坐标。

那么,锚点原点有什么区别呢?他们太相似了!锚点改变了精灵图片纹理的原理,值的范围是0-1;原点改变了精灵的原点,使用的像素值。你应该使用哪一种?这取决于你。你可以试试这两种方法,看看你更喜欢哪一种。

lastUpdate: 11/16/2021, 6:11:55 AM