在cocos2d-x在,有几种不同的坐标系。
因为有好几个坐标系着一定的差异,他们需要明白,能力更精确的绘制各种图形画面上。
1.屏幕坐标系
只windows通过绘制图形上基本都知道。相应的坐标系统:原点在左上角。向右是x轴正方向,向下时y轴正方向。cocos2d-x中的屏幕坐标系也是这种。我们手机的屏幕就是相应的屏幕坐标系。当我们用手点击手机屏幕,得到的点就是相应的屏幕坐标系的坐标。
2.OpenGL坐标系
OpenGL坐标系是在cocos2d-x中进行计算时使用的坐标系。它的原点是屏幕左下角,向右是x轴正方向,向上市y轴正方向。因为它与屏幕坐标系不一样,所以当我们得到屏幕坐标系下的坐标时,得先将其转换为OpenGL坐标系下的坐标,才干进行对应的计算,如触屏事件中,得到的坐标,每次都得先进行转换。将屏幕坐标转换为OpenGL坐标,能够使用CCDirector的convertToGL函数。
3.世界坐标系
一个游戏就相当于一个虚拟的世界。在这个游戏世界中。每一个物体都有它相相应的位置,亦就是坐标。所以能够说世界坐标系就是相应于整个游戏的坐标系,是一个物体在游戏世界里的绝对坐标系。
4.相对坐标
虽然我们在设置物体的坐标的时候能够直接定义它在世界坐标系中的绝对坐标。可是在cocos2d-x中使用较多的却是相对坐标。由于在cocos2d-x中是以树的形式组织对象的,所以一个子节点对象的坐标系仅仅參考它的父节点对象。所以叫作相对坐标。
就好比一个人,在汽车里,无论汽车在地面上怎么开动,仅仅要这个人在汽车上保持不动。他在相对于汽车的坐标系里面的坐标是不变的。cocos2d-x中的setPosition函数设置的就是其相对于父节点的坐标。而不是世界坐标。
设置相对坐标的优点是显而易见的。一个物体可能有非常多部分组成,当须要移动或者总体旋转缩放时,我们能够把它增加一个CCNode里面。然后直接到CCNode操作到。便利。
版权声明:本文博客原创文章,博客,未经同意,不得转载。