# 旋转
你可以给精灵的rotation
属性设置为一个弧度值来让它旋转。
cat.rotation = 0.5;
1
但是绕着哪个点旋转呢?
您已经看到,精灵的左上角表示它的x
和y
位置。这个点叫做锚点(anchor)
。如果你将精灵的rotation
属性设置为类似于0.5的值,旋转将会在精灵的锚点附近发生。下图显示了锚点对我们的猫精灵产生的影响。
;
你可以看到锚点
,猫的左耳,猫围绕这个锚点
旋转。如果你想让精灵绕着它的中心旋转呢?改变精灵的锚点
,使它位于精灵的中心,就像这样:
cat.anchor.x = 0.5;
cat.anchor.y = 0.5;
1
2
2
anchor.x
和anchor.y
值表示纹理尺寸的百分比,从0到1(0%到100%)。将它设置为0.5,使纹理在点上居中。点本身的位置不会改变,只会改变纹理的位置。
下图是一个已经旋转过的精灵,然后使锚点居中的效果。
你可以看到精灵的纹理向上并向左移动。这是一个需要记住的重要副作用!
就像position
和scale
一样,您可以用一行代码来设置锚点
的x
和y
值,如下所示:
cat.anchor.set(x, y)
1
精灵还有一个类似于锚点的pivot
属性。
pivot
轴心点设置了精灵的原点。
如果你改变了它,然后旋转精灵,精灵会绕着原点旋转旋转。下面把精灵的pivot.x
和pivot.y
都设置为32:
cat.pivot.set(32, 32)
1
假设精灵是64x64像素,精灵现在会绕着它的中心点旋转。
但是请注意
如果你改变一个精灵的原点,你也就改变了它的坐标。
那么,锚点
和原点
有什么区别呢?他们太相似了!锚点
改变了精灵图片纹理的原理,值的范围是0-1;原点
改变了精灵的原点,使用的像素值。你应该使用哪一种?这取决于你。你可以试试这两种方法,看看你更喜欢哪一种。