2022年Cocosd-X开发之坐标系统详解 .pdf

上传人:C****o 文档编号:39714258 上传时间:2022-09-07 格式:PDF 页数:4 大小:194.49KB
返回 下载 相关 举报
2022年Cocosd-X开发之坐标系统详解 .pdf_第1页
第1页 / 共4页
2022年Cocosd-X开发之坐标系统详解 .pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《2022年Cocosd-X开发之坐标系统详解 .pdf》由会员分享,可在线阅读,更多相关《2022年Cocosd-X开发之坐标系统详解 .pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、IT 在线教育平台麦子学院:http:/Cocos2d-x坐标系统主要包括:屏幕坐标系、OpenGL坐标系、世界坐标系、本地坐标系。下面我们分别来看下屏幕坐标系屏幕坐标系使用的是不同的坐标系统,原点在屏幕左上角,x 轴向右,y 轴向下。iOS 的屏幕触摸事件CCTouch传入的位置信息使用的是该坐标系。因此在Cocos2D-x中对触摸事件做出响应前,需要首先把触摸点转化到OpenGL坐标系。这一点在后面的触屏信息中会详细介绍,可以使用CCDirector的 convertToGL方法来完成这一转化。在处理触摸事件的回调方法中,我们会经常碰到这两者的坐标系统的转换处理问题。在CCTouch文件中

2、已经为我们封装好了获取触摸点在OpenGL坐标系统和屏幕坐标系统中的坐标位置。从触摸点获取到在屏幕坐标系中的坐标1./returns the current touch location in screen coordinates 2.CCPoint CCTouch:getLocationInView()const 3.4.return m_point;5.从触摸点获取到在OpenGL坐标系中的坐标1./returns the current touch location in OpenGL coordinates 2.CCPoint CCTouch:getLocation()const 3.

3、4.return CCDirector:sharedDirector()-convertToGL(m_point);5.OpenGL坐标系Cocos2D-x以 OpenGL和 OpenGL ES为基础,所以自然支持OpenGL坐标系。该坐标系原点在屏幕左下角,x 轴向右,y 轴向上。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 4 页 -IT 在线教育平台麦子学院:http:/屏幕坐标系与 OpenGL坐标系作用对象均为整个屏幕。因此屏幕上物体的坐标可以在这两种坐标系间相互转换。1.CCDirector:convertToGL();/将屏幕坐标转为OpenGL坐标2.CCDir

4、ector:convertToUI();/将 OpenGL坐标转为屏幕坐标世界坐标系世界坐标系也叫作绝对坐标系,是游戏开发中建立的概念,因此,“世界”即是游戏世界。它建立了描述其他坐标系所需要的参考标准。我们能够用世界坐标系来描述其他坐标系的位置。它是Cocos2D-x中一个比较大的概念。Cocos2D-x中的元素是有父子关系的层级结构。通过CCNode设置位置使用的是相对其父节点的本地坐标系,而非世界坐标系。最后在绘制屏幕的时候,Cocos2D-x会把这些元素的本地节点坐标映射成世界坐标系坐标。世界坐标系和OpenGL坐标系方向一致,原点在屏幕左下角,x 轴向右,y 轴向上。世界坐标系与 本

5、地坐标系这两种坐标系是一对相对的概念,分别是以父节点和子节点为作用对象的坐标系。如下图关系:名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 4 页 -IT 在线教育平台麦子学院:http:/父节点为一个CCLayer 图层节点,子节点为一个CCSprite精灵节点。把子节点放在父节点某个位置的时候,我们需要在子节点上取一个点作为代表,这个点在父节点上的位置作为子节点在父节点上的位置。这个点称为锚点。锚点在本地坐标系上的坐标为(a1,b1)(这里说的坐标是普通意义上的坐标,不是指Cocos2d-x中设置锚点的那种比例坐标);子节点在世界坐标系上的坐标为(a2,b2)。1、坐标转换当

6、父节点有多个子节点时,容易获取子节点的世界坐标,但是很多时候我们希望得到比如子节点 A 相对于子节点B 相对位置,这时就需要知道子节点A 在子节点B 的本地坐标系中的坐标值。同时,有时候我们需要通过本地坐标获得世界坐标值。1.CCPoint:convertToNodeSpace();/世界坐标转为本地坐标2.CCPoint:convertToWorldSpace();/将本地坐标转为世界坐标名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 4 页 -IT 在线教育平台麦子学院:http:/CCPoint:convertToNodeSpace1.CCPoint point=node1

7、-convertToNodeSpace(node2-getPosition();假设 node1对象的世界坐标(a1,b1),node2的世界坐标(a2,b2),这个语句通过函数计算出 node2的相对于 node1本地坐标系的坐标,即node1指向 node2的向量坐标(a2-a1,b2-b1),并把结果返回给point。CCPoint:convertToWorldSpace1.CCPoint pos2=node1-convertToWorldSpace(relativePos);2.node2-setPostion(pos2);与 CCPoint:convertToNodeSpace相反,这个函数由相对于node1的相对坐标relativePos得到 node2的世界坐标。2、锚点在讲世界坐标系和本地坐标系的时候提到锚点,这里对锚点进行一点补充。Cocos2d-x中采用比例坐标来设置锚点。一个节点的锚点默认在节点中心,即(0.5,0.5)。如果设置锚点在节点左上角,那么锚点坐标为(0,1)。如需了解更多Cocos2d-x开发知识,请至麦子学院官网查看。名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 4 页 -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁