cocos2d-x坐标系

项目中有个需求“刮刮卡”,在手指触摸屏幕时,需要动态检查当前触摸的点是否“碰”到某个卡了,如果碰到了就把它显示出来。这里就需要了解一下IOS的坐标系统与OpenGL的坐标系统了

常见的三种坐标系:

UI坐标系,起点(0, 0),位于屏幕左上角, 也称屏幕坐标系,如下图所示

Direct3D坐标系,使用的是左手坐标系(Left-hand Cartesian Coordinate System),Z轴向里

OpenGL的坐标系,右手坐标系(Right-hand Cartesian Coordinate System),Z轴向外

如果在2D的的世界里,我们只讨论X、Y,实际上就变成二种坐标系了:以左上角为原点、以左下角为原点。这样来看的话,它们唯一的区别就在于Y轴,也就是说它们之前的转换只需要使用(winHeight – y)便可得到在另外一种坐标系的坐标。

cocos2d-x返回的点,是它在UI坐标系中的位置,使用CCPoint pt = pTouch->getLocationInView()获得UI坐标系中的坐标点,然后将其转换为OpenGL坐标系的坐标CCDirector::sharedDirector()->convertToGL(touchLocation);

使用convertToWorldSpace方法,可将相应的卡片坐标转换为OpenGL中的坐标,然后对它的width、height处理,就可以得到该卡片所占的区域。node的getPosition()只是获得该节点相对它的你节点的位置,所以convertToWorldSpace方法的调用应该如下所示:

nodeParent->convertToWorldSpace(node->getPosition())

关于cocos2d-x的坐标系的更多信息,可参考这里:

http://www.cocos2d-x.org/wiki/Coordinate_System

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏图像识别与深度学习

2018-06-30 TensorFlow实战:SoftMax手写体MNIST识别(Python完整源码)

15640
来自专栏WOLFRAM

应用案例与新功能小贴士-03

183110
来自专栏Jack-Cui

Caffe学习笔记(一):CIFRA-10在Caffe上进行训练学习

运行平台:Ubuntu14.04     安装完Caffe后,如何开始学习Caffe呢?一个不错的方法就是从Caffe自带的examples开始学起。在caff...

33070
来自专栏机器之心

教程 | TensorEditor :一个小白都能快速玩转的神经网络搭建工具

23260
来自专栏用户2442861的专栏

openCV—访问与操作像素(图片的区域的更改)

结果如下: 位置(0,0)处的像素 - 红:225,绿:138,蓝:128 位置(0,0)处的像素 - 红:200,绿:150,蓝:100

20510
来自专栏帮你学MatLab

《Experiment with MATLAB》读书笔记(九)

读书笔记(九) %% 复数的极坐标形式 z = 3 + 4i r = abs(z) %极径 phi = angle(z) %幅角 ...

30590
来自专栏mathor

“达观杯”文本智能处理挑战赛

 由于提供的数据集较大,一般运行时间再10到15分钟之间,基础电脑配置在4核8G的样子(越消耗内存在6.2G),因此,一般可能会遇到内存溢出的错误

39620
来自专栏计算机视觉

今天来看一下MS-COCO数据集的内容说明,数据的定义,标注信息

http://cocodataset.org/#download 官网地址 Mask API 中介绍 COCO为每个目标实例都提供了分割Msak { "in...

1.2K60
来自专栏CDA数据分析师

Python图像处理库:Pillow 初级教程

Pillow由PIL而来,所以该导入该库使用import PIL 本文相关的代码:https://github.com/445141126/pillow_ex...

54390
来自专栏null的专栏

数据处理——One-Hot Encoding

一、One-Hot Encoding One-Hot编码,又称为一位有效编码,主要是采用 ? 位状态寄存器来对 ? 个状态进行编码,每个状态都由他独立的寄存器...

37670

扫码关注云+社区

领取腾讯云代金券