SpriteKit之浅谈AnchorPoint(锚点)的使用


理想如果不向现实做一点点屈服,那么理想也将归于尘土。
SpriteKit之浅谈AnchorPoint(锚点)的使用_第1张图片


锚点的简介


在SpriteKit的游戏开发当中经常会使用到AnchorPoint这一属性,锚点的使用一般是配合着position属性使用的,锚点是在自身View上找,这个点一一映射的有一个父view的坐标(使用position来表示),可以通过这两个值来计算子视图的位置信息.也就是说position 用来设置CALayer在父层中的位置,而anchorPoint 决定着CALayer身上的哪个点会在position属性所指的位置 .


cocos 2d、SpriteKit与iOS坐标系.


对锚点的介绍之前,我们首先对cocos 2dx、SpriteKit与iOS坐标系进行对比.cocos2d与SpriteKit里采用OpenGL ES坐标系,坐标原点在屏幕左下角。而iOS采用的是,坐标原点在屏幕左上角。如下图所示.

SpriteKit之浅谈AnchorPoint(锚点)的使用_第2张图片
Quartz 2D坐标系
SpriteKit之浅谈AnchorPoint(锚点)的使用_第3张图片
OpenGL ES坐标系


锚点的使用


锚点的类型是CGPoint类型数据,锚点的取值范围为(0,0)~(1,1)之间.如下图所示.

SpriteKit之浅谈AnchorPoint(锚点)的使用_第4张图片
锚点的取值范围

接下来我们就在iOS中举例子来说明锚点的作用(在SpriteKit中同理).我们在场景中设置一个View,View的大小为(100,100).如下进行三种方案.

方案一: 设置View的position(位置信息)为(50,50),锚点AnchorPoint为(0.5,0.5),那么这样做就说明View的中心是在父视图的(50,50)这个点上.如图中 ① 所示.
方案二: 设置View的position(位置信息)为(50,50),锚点AnchorPoint为(0,0),那么这样做就说明View的原点是在父视图的(50,50)这个点上.如图中 ② 所示.
方案三: 设置View的position(位置信息)为(50,50),锚点AnchorPoint为(1,1),那么这样做就说明View的终点是在父视图的(50,50)这个点上.如图中 ③ 所示.
SpriteKit之浅谈AnchorPoint(锚点)的使用_第5张图片
通过上面的三个方案,对锚点的理解就差不多了,锚点的使用更多的是用于动画,游戏开发当中.在iOS普通开发中一般都是直接使用frame设置View的大小,位置信息.如果有任何疑问,可以在下面下面的评论区提出,我会及时回复,谢谢.

你可能感兴趣的:(SpriteKit之浅谈AnchorPoint(锚点)的使用)