在cocos2dx中,有四种坐标系

GL坐标系:左下为原点,x轴向右,y轴向上

UI坐标系:左上为原点,x轴向右,y轴向下

世界坐标系:与GL坐标系相同

本地坐标系:是节点(CCNode)的坐标系,原点在节点左下角,x轴向右,y轴向上

GL坐标和UI坐标转换在导演类(CCDirector)中

CCPoint CCDirector::convertToGL(const CCPoint& obPoint);

CCPoint CCDirector::convertToUI(const CCPoint& obPoint);

世界坐标系和本地坐标系转换在节点类(CCNode)中

CCPoint CCNode::convertToNodeSpace(const CCPoint& worldPoint);

CCPoint CCNode::convertToWorldSpace(const CCPoint& nodePoint);

CCPoint CCNode::convertToNodeSpaceAR(const CCPoint& worldPoint);

CCPoint CCNode::convertToWorldSpaceAR(const CCPoint& nodePoint);

UI坐标系用在触摸事件的参数中,在重载

virtual bool ccTouchBegan(CCTouch* touch, CCEvent* event)

函数时,touch中携带的坐标就是UI坐标系,当用来判断某个精灵是否被点击时,需要将touch转为GL坐标系

世界坐标系和GL坐标系是一样的,在cocos2dx中用这种坐标系最多

节点坐标系指以节点左下角为原点的坐标系,用于放置子节点,当某个节点setPosition时,参数所参照的坐标即是父节点的坐标系

cocos2dx进阶学习之坐标转换的更多相关文章

  1. cocos2dx进阶学习之场景切换

    背景 在学习马里奥时,我们学习到从菜单场景到游戏场景的切换,代码如下 void CMMenuScene::OnStartCallBack( CCObject *pSender ) { CCDirect ...

  2. cocos2dx进阶学习之CCNode

    继承关系 CCNode  -> CCObject CCNode在cocos2dx中抽象舞台对象,需要渲染的对象都是从CCNode派生,包括CCScene,CCLayer,CCSprite等等 C ...

  3. cocos2dx进阶学习之CCScene

    继承关系 CCScene -> CCNode -> CCObject CCScene抽象了一个场景的概念,类似舞台的一幕 函数 static CCScene *create(void); ...

  4. cocos2dx进阶学习之CCDirector

    继承关系 CCDirecotor -> CCObject, TypeInfo 处理主窗口消息,管理何时.何种方式执行场景. 经常被翻译成导演,负责管理整个游戏的进程推动和周边支持. 成员 inl ...

  5. cocos2dx进阶学习之屏幕适配

    背景 在学习cocos2dx时,我们在main函数中发现一句代码, #include "main.h" #include "AppDelegate.h" #in ...

  6. cocos2dx进阶学习之CCEGLView

    继承关系 CCEGLView-> CCEGLViewProtocol CCEGLView是窗口,在不同平台上有不同的实现,而CCEGLViewProtocol是CCEGLView定义的接口,所以 ...

  7. cocos2dx进阶学习之CCAction

    CCAction在cocos2dx中,抽象了节点的动作.它由CCObject派生,因此它不是渲染节点. 它经常的用法是,创建一个action,然后让某个CCNode对象(一般是精灵),去执行它. 在马 ...

  8. cocos2dx进阶学习之瓦片地图编辑器

    之前学习了瓦片地图类,现在我们来学习下瓦片地图制作工具 这个是开源的工具,可以从网上下载,下面我们演示下怎么做地图 步骤1 将需要用到的图片放到一个目录下,比如我机器上就是d:\tiled,这些图片是 ...

  9. cocos2dx进阶学习之CCTMXTiledMap

    继承关系 CCTMXTiledMap -> CCNode 它由CCNode派生,我们已经知道CCNode是cocos2dx的舞台对象的公共父类,所以CCTMXTiledMap也是个舞台对象 成员 ...

随机推荐

  1. pv ticketlock解决虚拟环境下的spinlock问题

    最近看邮件,有注意到pv ticketlock相关的消息,貌似jeremy 几年前的东东,终于将要被收录到linux 3.12里面. 先说下pv ticketlock这东西,http://blog.x ...

  2. gdbserver 安卓apk

    gdbserver  调试程序 底层调用c/c++ 动态库, 动态库带调试选项 查看手机IP 192.168.1.177 包所调用的c/c++ 库是在/data/data/包名/lib/ 下 1.将安 ...

  3. hdu 2777(线段树)

    这道题是看了别人的思路才做出来的. 刚看完这道题没什么思路,线段的长度是10^5,操作指令数是10^5,还要记录不同颜色种类数,觉着怎么写肯定都是要超时.我当时在节点里增加了一个数组记录已经出现的颜色 ...

  4. 2014-07-23 利用ASP.NET自带控件实现单文件上传与下载

    效果图 上传文件页面: 下载文件页面:  1.母版页site.Master <%@ Master Language="C#" AutoEventWireup="tr ...

  5. Android学习笔记(一)开发环境搭建

    Android开发环境搭建 安装JDK 1.如果你还没有JDK的话,可以去这里http://www.oracle.com/technetwork/java/index.html ,接下来的工作就是安装 ...

  6. C++的常量折叠(二)

    前面的C++的常量折叠(一)的最后留下了一个问题,那就是在声明i的时候,加上修饰符volatile关键字,发现结果输出的就不一样了,下面来说一下volatile这个关键字. C/C++中的volati ...

  7. Spring学习之注入方式

    我们知道,Spring对象属性的注入方式有两种:设值注入和构造注入. 假设有个类为People,该对象包含三个属性,name和school还有age,这些属性都有各自的setter和getter方法, ...

  8. bzoj 1042: [HAOI2008]硬币购物 dp+容斥原理

    题目链接 1042: [HAOI2008]硬币购物 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1706  Solved: 985[Submit][ ...

  9. 解决windows7搜索不了txt文本内容的问题

    windows7默认的搜索框是只搜索文件名,若是要文件内容的话,需要这样设置: 打开"我的电脑",左上角"组织"→"文件夹和搜索选项"→&q ...

  10. [LeetCode]题解(python):067-Add Binary

    题目来源: https://leetcode.com/problems/add-binary/ 题意分析: 这题是要将二进制相加,比如“11”,“1”,那么就返回“100”. 题目思路: 模拟加法的过 ...