cocos2d-x 坐标系解惑
1、CCTouch* touch->getLocation() ---- 返回当前触摸点在openGL坐标系中的位置
openGL坐标系,原点在左下角,x向右为正,y向上为正。
2、CCTouch* touch->getLocationInView() ---- 返回当前触摸点在屏幕坐标系中的位置
视图坐标系,原点在左上角,x向右为正,y向下为正。
经测试以上两个结果值,x一样,y值不一样。
3、CCDirector->sharedDirector()->convertToGL(CCPoint* point)------把poit从一个UIKit 框架坐标系转换到OpenGL坐标系。把(多点)触摸坐标转换到当前布局(layout)(垂直或水平)时非常有用。
1的结果= 2 + 3
4、CCDirector->sharedDirector()->convertToUI(CC:point* point)----把point从OpenGL坐标系转换为UIKit 框架坐标系。 非常适合节点坐标(Node Points)转换为窗口坐标(Window Points)时调用。比如glScissor.
2 = 1 + 4
5、CCLayer* layer->convertToNodeSpace(CCPoint* worldpoint)---把worldpoint 转换为节点(本地)坐标系坐标(node space coordinates)。
结果跟worldpoint一样,如果worldpoint 是GL坐标,结果就跟GL坐标一样,若是视图坐标,结果跟View坐标一样。
6、CCLayer* layer->convertToWorldSpace(CCPoint* nodepoint)---把nodepoint转换为世界坐标系坐标(world space coordinates)。
结果跟nodepoint一样,如果nodepoint 是GL坐标,结果就跟GL坐标一样,若是视图坐标,结果跟View坐标一样。
7、CCLayer* layer->convertToNodeSpaceAR(CCPoint* worldPoint) --- 把worldPoint转换为节点坐标系坐标,返回的节点坐标是锚点坐标(treating the returned/received node point as anchor relative.)。
AR的结果跟别的都不同,具体意义还不清楚。
8、CCLayer* layer->convertToWorldSpaceAR(CCPoint* nodePoint)--- 把nodepoint转换为世界坐标系坐标(world space coordinates)。返回的坐标是锚点坐标(treating the returned/received node point as anchor relative.)。
AR的结果跟别的都不同,具体意义还不清楚。worldAR 跟 nodeAR也不同。
9、CCLayer* layer->convertTouchToNodeSpace(CCTouch* touch)---- 用touch替代point的便捷方法。
结果跟1,3,5的结果一样
10、CCLayer* layer->convertTouchToNodeSpaceAR(CCTouch* touch)---- 用touch替代point的便捷方法。
结果跟7一样
cocos2d-x 坐标系解惑的更多相关文章
- cocos2D(五岁以下儿童)---- CCNode
本将主要介绍下CCNode这个类.CCNode是全部节点的基类,当中包含我们经常使用的CCScene(场景).CCLayer(图层).CCSprite(精灵)等.它是一个不可以可视化显示的抽象类,仅仅 ...
- 五、CCNode
本将主要介绍下CCNode这个类,CCNode是所有节点的基类,其中包括我们常用的CCScene(场景).CCLayer(图层).CCSprite(精灵)等,它是一个不能够可视化显示的抽象类,只是用来 ...
- flash 动画数据导出 到 coco2d-js ,cocos2d-x 问题的记录
1:必须搞清flash坐标系 和 cocos2d 的坐标系的差异2:对于cocos2d系列坐标系的深入理解: 以前我们常认为 coco2d-x的X,Y是相对坐标系,相对于父节点的X,Y的坐标,这种说法 ...
- cocos2d-x学习笔记
转自:http://blog.csdn.net/we000636/article/details/8263503 接受触屏事件的优先级是值越小,响应触屏事件的优先级越高 Z值越大,越外面 JNI:允许 ...
- UML设计,可以设计程序的用例图、类图、活动图等_SurfaceView
« 对Cocos2d游戏引擎有一定的了解和实践,并接触过处理3D图形和模型库的OpenGL 在进行游戏界面的绘制工作中,需要处理大量的工作,这些工作有很多共性的操作:并且对于游戏界面的切换,元素动作的 ...
- Cocos2d坐标系转换
Cocos2d-x坐标系和OpenGL坐标系相同,都是起源于笛卡尔坐标系(高中数学里面那种). 笛卡尔坐标系 笛卡尔坐标系中定义右手系原点在左下角,x向右,y向上,z向外,OpenGL坐标系为笛卡尔右 ...
- 【Cocos2d入门教程七】三分钟看懂Cocos2d坐标系
无论是搞2d还是3d开发,最需要搞清楚的就是坐标系,这部分混乱的话就没啥搞头了.所以玩cocos2d,一上来就需要先把各种与坐标有关的东西搞清楚. 1.OpenGL坐标系 Cocos2d-x使用的是O ...
- Cocos-2d 坐标系及其坐标转换
Cocos-2d中,涉及到4种坐标系: GL坐标系Cocos2D以OpenglES为图形库,所以它使用OpenglES坐标系.GL坐标系原点在屏幕左下角,x轴向右,y轴向上. 屏幕坐标系苹果的Quar ...
- 一张图了解cocos2d坐标系
一张图了解cocos2d坐标系 平面直角坐标系
随机推荐
- pycharm、idea插件代理设置,插件安装
pycharm和idea都是intellij的,所以插件安装是设置代理方法相似, 以pycharm举例: 1.已经安装的插件列表: 2.查找要安装的插件,没有,会给出下载插件的链接地址: 3.打开链接 ...
- [React] Persist Form Data in React and Formik with formik-persist
It can be incredibly frustrating to spend a few minutes filling out a form only to accidentally lose ...
- 怎样改动X-code中的字体大小、颜色
- fill函数和fill_n函数
fill_n函数的作用是:给你一个起始点,然后再给你一个数值count和val.把从起始点开始依次赋予count个元素val的值. 注意: 不能在没有元素的空容器上调用fill_n函数 列子: ...
- GY的实验室 - Phalcon+Nginx+PHP-FPM环境搭建(转)
Phalcon简介 由于半路出家的缘故,没用过几个PHP框架,第一个了解的框架是公司自己的,然后又试着用了Yii,CI.在读了CSDN在某度的高排名翻译文章(PHP开发框架流行度排名:Laravel居 ...
- ios开发之自己定义默认生成的导航栏 标题 颜色 返回button
一 改动导航栏颜色 导航栏在哪个页面代码放在那里面 self.navigationController.navigationBar.tintColor = [UIColor colorWithR ...
- JAVA WEB学习笔记(二):Tomcat服务器的安装及配置
一.Tomcat的下载及安装. 前往Tomcat官网下载安装包或者免安装压缩包.链接http://tomcat.apache.org/ 这里,我选择的是Tomcat8.0,而不是最新的Tomcat9. ...
- A new session could not be created. (Original error: Requested a new session but one was in progress) )错误解决办法
z在desiredCapabilities里新增这俩居然fix了问题,原因暂时不得而知: capabilities.setCapability("unicodeKeyboard", ...
- vue 单页面(SPA) history模式调用微信jssdk 跳转后偶尔 "invalid signature"错误解决方案
项目背景 vue-cli生成的单页面项目,router使用history模式.产品会在公众号内使用,需要添加微信JSSDK,做分享相关配置. 遇到的问题 相关配置与JS接口安全域名都已经ok,发布后, ...
- jetty java文件无法删除 java文件占用 delete无效 运行时锁定静态资源的解决方法
前几天jetty下发现java无法删除文件,文件操作后一直被jvm占用,无奈换了tomcat问题消失. 今天又想起来,尝试网上的解决方法,经本人试验,直接修改配置文件有时不能生效,具体原因不清楚,建议 ...