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坐标系 平面直角坐标系
随机推荐
- PHP用CURL发送Content-type为application/json的HTTP/HTTPS请求
<?php $headers = array( "Content-type: application/json;charset='utf-8'", "Accept: ...
- [置顶] 内存管理一点也不神秘————手绘iOS内存管理细节
今天给大家带来的一篇手绘风格博文<内存管理一点也不神秘> 每当我们程序执行alloc/new/copy/mutableCopy的时候,当我们执行release的时候,当我们执行retain ...
- 【hibernate/JPA】注解方式实现 复合主键【spring boot】
1>hibernate/JPA实现复合主键的思路:是将所有的主键属性封装在一个主键类中,提供给需要复合主键的实体类使用. 2>主键类的几点要求: . 使用复合主键的实体类必须实现Seria ...
- go test test & benchmark
开发程序其中很重要的一点是测试,我们如何保证代码的质量,如何保证每个函数是可运行,运行结果是正确的,又如何保证写出来的代码性能是好的,我们知道单元测试的重点在于发现程序设计或实现的逻辑错误,使问题及早 ...
- Flex4_操作XML
一.创建XML类 1.把字符串对象转换为XML: var xmlStr:String="<students><student><name>吕布</n ...
- 【转载】C#中的泛型
1.1 C#中的泛型 .Net 1.1版本最受诟病的一个缺陷就是没有提供对泛型的支持.通过使用泛型,我们可以极大地提高代码的重用度,同时还可以获得强类型的支持,避免了隐式的装箱.拆箱,在一定程度上提升 ...
- opencv2反投影直方图以检測特定的图像内容
#ifndef HISTOGRAM_H_ #define HISTOGRAM_H_ #include<opencv2/core/core.hpp> #include<opencv2/ ...
- 【读后感】Netty 系列之 Netty 高性能之道 - 相比 Mina 怎样 ?
[读后感]Netty 系列之 Netty 高性能之道 - 相比 Mina 怎样 ? 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商 ...
- DRF 之 路由组件
组件路由的步骤 1.先要导入DefaultRouter from rest_framework.routers import DefaultRouter 2.实例化DeaultRouter对象 rou ...
- Cache 简介
一.什么是缓存1.Cache是高速缓冲存储器 一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问2.凡是位于速度相差较大的两种硬件/软件之间的,用于协调两者数据传输速度差异的结构,均可称之 ...