Cocos坐标体系

这篇博客详细介绍了Cocos2d-x中的坐标体系,包括UI坐标、OpenGL坐标、世界坐标、模型坐标和锚点坐标。转换方法如Director的UI到GL转换,以及节点间坐标转换。Cocos2d-x采用GL坐标系统,节点的位置控制基于锚点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


有如下几个概念:

表示方法:Vec2 其本质上就是一个Point,由两个float组成,表示x和y。

UI坐标:手机的定义坐标,其原点是在左上角的,我们通常把带有View的函数认为是和UI坐标相关的函数,可以获取UI坐标的触摸对象:touch->getLocationInView()

OpenGl坐标:这是一个三维坐标,原点在左下角

世界坐标:遵循OpenGL坐标标准,原点也在左下角,scenelayer默认与世界坐标重合

模型坐标:就是精灵们的坐标,也遵循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();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值