赞
踩
Cocos2d-x中的几个坐标系
1:世界坐标系
世界坐标系是一个绝对的坐标系,是游戏里面固定的坐标系,就像当年那个“大航海”中的世界坐标系一样,世界坐标系是其他坐标系的参考标准,世界坐标系可以描述其他坐标系的位置。原点(0,0)就是屏幕的左下角,x轴向右,y轴向上,convertToWorldSpace(),获取世界坐标。
2:OpenGL坐标系
cocos2d-x以OpenGL和OpenGL ES为基础,OpenGL坐标系中,以(0,0)为原点,x轴向右,y轴向上,在IOS的触屏事件CCTouch中,传入的位置坐标就是使用的该坐标系。在Cocos2d-x中对触摸事件做出响应之前,要把触摸点转化到OpenGL坐标系中,可以使用CCDirector的convertToGL方法来转化。
3:节点坐标系
节点坐标系是和特定节点相关联的坐标系,也就是说这个坐标是参考另一个参考系的,简单来说就是B相对于A的坐标是多少。每一个节点都有一个独立的坐标系,父节点的坐标改变时子节点的坐标也会相应的改变。它的方向也是x轴向右,y轴向上,原点在父节点的左下角。
CCNode类设置位置时使用的就是父节点的节点坐标系。
converToWorldSpace:把基于当前节点的本地坐标转化成世界坐标。(不考虑锚点)
converToNodeSpace:把世界坐标转化为相应的节点坐标。(不考虑锚点)
converToWorldSpaceAR和converToNodeSpaceAR。它们的基准坐标都是坐标锚点,如果锚点也设置在原点的话,那和上述的方法调用产生的效果就是一样的了。
4:锚点
锚点指定了贴图上和所在节点原点(也就是设置位置的点)重合的位置,只有在CCNode使用贴图的情况下才起作用。锚点的默认值是(0.5,0.5),他是一个乘数因子,(0.5,0.5)表示贴图的中心,也就是表示贴图的比例。
改变锚点的值看起来会改变图片在屏幕上显示的位置,其实并没有改变图片的位置,只是改变了图片相对于设置位置点的相对位置,你只是移动了节点里的贴图,并非是设置的图片的位置。锚点设置成(0,0)就表示贴图的左下角和设置的节点位置重合。锚点的使用和灵活,要灵活的运用!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。