十一:Cocos2d-x坐标系
更新:HHH   时间:2023-1-7


OPENGL坐标系: 原点在左下角,x轴向右,y轴向上     (OpenGL 是右手坐标系 Direct3D 是左手坐标系)

                                          右手坐标系: 拇指指向X轴正向,食指指向Y轴正向,中指指向Z轴正向;


屏幕坐标系:     原点在左上角,x轴向右,y轴向下 。

                               比如触摸事件传进来的就是触摸点在屏幕坐标系下的位置,处理时要先把触摸点坐标     转化为OPENG坐标,使用CCDirector的comvertToGL 来完成。


世界坐标系:    原点在左下角,x轴向右,y轴向上。(以第三方为参考)

                               也叫绝对坐标系,是游戏世界的坐标系。


本地坐标系:   原点在父节点的左下角,x轴向右,y轴向上。参考物是自己,精灵或者物体。(向左,向右)

                              从Node节点拿到的坐标是本地坐标系坐标, 也就是父节点的节点坐标系。 如果父节     点是场景树中的顶层节点,那么他使用的节点坐标系就和世界坐标系重合。此坐标表示                                 的是相对位置。例如Node1相对于Node2的坐标。


锚点:   锚点是贴图节点的中心点,一般默认(0.5,0.5) 即中心位置,(1.0,1.0是右上角)。变换时锚点 的值会影响变换效果。

             主要是相对于模型坐标而言。convert函数中带AR表示相对于锚点。


        Node的坐标点就是锚点的坐标。另外Node还有原点(模型左下角)和大小(由模型像素决定),锚点和Node的大小共同决定了Node的位置。


       在调用任何需要设置位置的函数,或从函数获取位置信息前,必须要明确这个函数使用哪个坐标系。比如调用CCNode类的setPosition函数,它使用的就是GL坐标系。比如在处理触摸事件时CCTouch对象中的坐标就是屏幕坐标系。

        要尽可能用相对坐标。换句话说,程序中所有对象在设置大小和位置时,都应该以父对象的大小和位置为依据。 这样程序发布在以各种不同的分辨率发布时,只需要调整根对象的大小就可以了。


返回游戏开发教程...