[1]:cocos2dx初学笔记

关于坐标系中的小解释:


世界坐标系:一个自然认知的世界体系,三维

世界坐标系也叫作绝对坐标系,是游戏开发中建立的概念,因此,“世界”即是游戏世界。它建立了描述其他坐标系所需要的参考标准。我们能够用世界坐标系来描述其他坐标系的位置。它是 Cocos2D-x 中一个比较大的概念。

Cocos2D-x 中的元素是有父子关系的层级结构。通过 CCNode 设置位置使用的是相对其父节点的本地坐标系,而非世界坐标系。最后在绘制屏幕的时候,Cocos2D-x 会把这些元素的本地节点坐标映射成世界坐标系坐标。世界坐标系和 OpenGL 坐标系方向一致,原点在屏幕左下角,x 轴向右,y 轴向上。 

锚点:

锚点指定了贴图上和所在节点原点(也就是设置位置的点)重合的点的位置,因此只有在 CCNode 类节点使用贴图的情况下,锚点才有意义。

锚点的默认值是(0.5,0.5),表示的并不是一个像素点,而是一个乘数因子。(0.5,0.5)表示锚点位于贴图长度乘 0.5 和宽度乘 0.5 的地方,即贴图的中心。

改变锚点的值虽然可能看起来节点的图像位置发生了变化,但其实并不会改变节点的位置,其实变化的只是贴图相对于你设置的位置的相对位置,相当于你在移动节点里面的贴图,而非节点本身。如果把锚点设置成(0,0),贴图的左下角就会和节点的位置重合,这可能使得元素定位更为方便,但会影响到元素的缩放和旋转等一系列变换。因此并没有一种锚点设置是放之四海而皆准的,要根据你这个对象的使用情况来定义。在 Cocos2D-x 中锚点为默认值(0.5,0.5),这样的锚点设置要把一个节点放置到贴图的中央。 


锚点算法解释:

 actualposition.x = position.x + width*(0.5 - anhor_position.x);

 actualposition.y = position.y + height*(0.5 - anhor_position.y);

其中,position是贴图的中心点。因此不难理解锚点为{0,0}时,坐标点与贴图的左下角重合。

锚点,并不会改变节点的位置。只是和贴图的相对位置


节点坐标系:

节点坐标系是和特定节点相关联的坐标系。每个节点都有独立的坐标系。当节点移动或改变方向时,和该节点关联的坐标系(它的子节点)将随之移动或改变方向。这一切都是相对的,相对于基准的,只有在节点坐标系中才有意义。

CCNode 类的设置位置使用的就是父节点的节点坐标系。它和 OpenGL 坐标系的方向也是一致的,x 轴向右,y 轴向上,原点在父节点的左下角。如果父节点是场景树中的顶层节点,那么它使用的节点坐标系就和世界坐标系重合了。 

世界坐标系和节点坐标系可以转换,可以选择是否基于锚点。


仿射变换:

游戏大量使用的旋转、缩放、平移等都是仿射变换。所谓仿射变换是指在线性变换的基础上加上平移。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值