有如下几个概念:
表示方法:Vec2 其本质上就是一个Point,由两个float组成,表示x和y。
UI坐标:手机的定义坐标,其原点是在左上角的,我们通常把带有View的函数认为是和UI坐标相关的函数,可以获取UI坐标的触摸对象:touch->getLocationInView()
OpenGl坐标:这是一个三维坐标,原点在左下角
世界坐标:遵循OpenGL坐标标准,原点也在左下角,scene和layer默认与世界坐标重合
模型坐标:就是精灵们的坐标,也遵循OpenGL,左下角
锚点坐标:实际上是遵循其节点的模型坐标的,模型左下角为原点
//GL坐标和UI坐标之间的转换:
Vec2 ptInView = Director::getInstance()->convertToUI(ptInGL);
Vec2 ptInGL = Director::getInstance()->convertToGL(ptInView);
// 世界坐标和节点坐标
Vec2 ptInSprite =sprite->convertToNodeSpace(ptInWorld);
Vec2 ptInWorld =sprite->convertToWorldpace(ptInSprite);
要注意的是,就是在setposition时,节点是以锚点为准控制位置的。
1. 左下角为原点,x轴向右,y轴向上,称之为GL坐标体系
2. 左上角为原点,x轴向右,y轴向下,称之为UI坐标体系
3. 在cocos2dx中,使用GL坐标系统
4. 游戏中窗口的GL坐标体系,称之为世界坐标体系
5. 游戏中每个节点都有自己的GL坐标体系,成之为节点坐标题
7. 节点之间的转换,要先转换成世界坐标
8. 节点获得地理位置信息的坐标值,都是其父节点坐标体系中的坐标值
getPosition();
getBoundingBox();