官方手册
关键词
文字记录
大家好,下边我们来解释一下位置和锚点。在上节课里边,我们已经学会了使用移动工具来移动一个节点的位置。那当我们移动一个节点位置的时候,我们知道实际上修改的是这个节点的 position 这个属性。比如说我们选中佩奇节点,然后移动它的时候,你会发现 position 这个属性的值是随之发生变化的。
锚点
好,那下边我们要理解一个细节,可以说是要精确的理解。比如说对佩奇这个节点来说,这个节点还是很大的。当你说他位置的时候,那你到底是说他头的位置还是说他脚的位置,他的鼻子的位置还是说他尾巴的位置呢?这个你需要来指定一下。
所以说就引入了一个新的概念叫锚点。锚点就是能够代表这个节点位置的一个点。当我们说一个节点位置的时候,其实那说它这个锚点所在的位置。比如说当我们选中小猪佩奇的时候,你可以看到一个坐标系,两个坐标轴,中间的是一个点。
那其实这个 position 指的就是中间坐标轴的圆点的位置。默认情况下,这个锚点是位于这个节点的中心。你可以看到Anchor这个参数,Anchor这个参数就用来指定它的这个基准点,锚点。默认情况下是0.5,0.5,也就是在水平方向上是居中的,然后竖直方向上,Y方向上也是居中的位置。
那我们可以来调整它一下。比如说我想让这个锚点移到它的底部的位置,就是脚的位置。那这时候 X 设为 0.5,y 把它设置为 0 就可以了。当我们现在说你要指定小猪佩奇的位置,其实是说他指定一下脚这个点所在的位置。
你看那同样的我们也可以把他的锚点指定为他的鼻子或指定他的头部。那比如说我们现在把anchor的 Y 值视值为1,也就意味着以它的头部这个点为它的锚点,你可以看到这个坐标轴移动到这里来了。当我们移动它的时候,它的基准点是在这个位置。好的,现在大家应该明白了这个锚点它的意思了,我们把它还是改成这个节点的中心。
position
那下边我们再来理解一下这个 position ,那 position 有什么好理解的呢? position 又代表的是一个节点的位置,但是这个位置也有一些说法,那现在我来修改它这个节点的位置,把它改成 0,0 这个位置。 0,0 这个位置你看一下,这有点奇怪,对不对?一个节点的位置是0,0,不是应该在这个位置吗?
因为这个是世界坐标系的原点,所以问题就来了,当我们指定一个 position 的时候,其实这个坐标是一个相对坐标,相对于它的父节点 canvas ,那这时候我们这个佩奇的父节点是 canvas,那canvas坐标在哪呢?
我们可以点一下 canvas,我们会发现它的位置是在 480,320 ,也就是在这整个这个视窗的中间,我们把这个佩奇给移过来。然后看一下选中这个 canvas ,你会发现 canvas 这个的基准点就是锚点,它是在这个中心的位置,0.5,0.5,然后它的 position 是480,320。也就是说这个 canvas 所在的位置是在我们看到的这个视窗的中心,是在这个 480,320 的位置。
然后我们又指定了个小猪,小猪是它的子节点,小猪位置是0,0。所以说小猪的位置就是相对父节点这个锚点来说是处在这个位置,它是一个叠加的效果。我们这样说,把小猪的 Y 设置为0,然后 X 坐标设置为负200。那么我们会发现你看这个点是 canvas的这个锚点,中心点,然后这是小猪的基准点,它们俩之间的距离是多少,应该是 200 个距离,这是一个相对坐标的概念。
好的这个概念大家一定要精确理解一下,你自己下去把它调整一下应该能够明白。 坐标的概念我们是一定要精确理解的。为什么要精确理解呢?因为我们在以后会写一些游戏脚本,用脚本的方式来控制这个节点的运动。那么它从哪里运动到哪里,这个肯定是要非常精确的。所以你对这个坐标是一定要精确理解的,不然的话这个代码可能就会写不出来,或者写出来运动的有点问题了。好的,那这节课就讲到这里,大家下去,自己对照视频来理解一下,谢谢。