坐标系转换

Cocos2d-x-v3坐标体系

不打扰是莪最后的温柔 提交于 2019-12-01 13:58:56
Cocos2d-x坐标体系 cocos2d引擎是一款非常优秀的扩平台的游戏开发引擎,在apple游戏榜上,有很多排名靠前的游戏都是由他创造出来的,他也有一套十分方便的坐标体系。 一、UI坐标体系 UI坐标体系相对于移动开发人员来说再熟悉不过了,在iOS系统中,它就是frame体系,即坐标(0,0)点位于屏幕的左上角,向右x增大,向下y增大。 二、OpenGL坐标体系 OpenGL坐标系是cocos2d中使用的坐标系,它更接近于数学上的坐标系,即(0,0)点位于屏幕的左下角,往左x增大,往上y增大。这套坐标系统也更符合物理世界的逻辑,便于游戏的开发。当然,这并不是说cocos2d中所有的坐标都是采用这个体系标准的,在手指点击事件层,接收到点击坐标点的坐标就是采用UI坐标系表示的。 三、世界坐标系 简单的理解,世界坐标系就是绝对坐标系,在cocos2d中,精灵的坐标是相对于其父视图而言的,是相对的坐标,世界坐标则是统一绝对的坐标,在项目中是固定的。 四、相对坐标系 最常用的坐标体系,任何类设置的坐标都是相对于其父视图原点的坐标。 五、坐标系的转换 由于UI坐标系与OpenGL坐标系的差异,在开发中,我们有时需要其两个标准的相互转化,cocos2d中也未我们提供了相应的方法: Vec2 Director ::convertToGL( const Vec2 & uiPoint);