(学习笔记2)Cocos2d-x中坐标的问题

来源:互联网 发布:数据库 上次修改时间 编辑:程序博客网 时间:2024/06/16 18:18

                       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)就表示贴图的左下角和设置的节点位置重合。锚点的使用和灵活,要灵活的运用!!!

原创粉丝点击