Cocos2d-x-v3坐标体系

简介: Cocos2d-x-v3坐标体系

Cocos2d-x坐标体系

       cocos2d引擎是一款非常优秀的扩平台的游戏开发引擎,在apple游戏榜上,有很多排名靠前的游戏都是由他创造出来的,他也有一套十分方便的坐标体系。

一、UI坐标体系

       UI坐标体系相对于移动开发人员来说再熟悉不过了,在iOS系统中,它就是frame体系,即坐标(0,0)点位于屏幕的左上角,向右x增大,向下y增大。

二、OpenGL坐标体系

       OpenGL坐标系是cocos2d中使用的坐标系,它更接近于数学上的坐标系,即(0,0)点位于屏幕的左下角,往左x增大,往上y增大。这套坐标系统也更符合物理世界的逻辑,便于游戏的开发。当然,这并不是说cocos2d中所有的坐标都是采用这个体系标准的,在手指点击事件层,接收到点击坐标点的坐标就是采用UI坐标系表示的。

三、世界坐标系

       简单的理解,世界坐标系就是绝对坐标系,在cocos2d中,精灵的坐标是相对于其父视图而言的,是相对的坐标,世界坐标则是统一绝对的坐标,在项目中是固定的。

四、相对坐标系

       最常用的坐标体系,任何类设置的坐标都是相对于其父视图原点的坐标。

五、坐标系的转换

       由于UI坐标系与OpenGL坐标系的差异,在开发中,我们有时需要其两个标准的相互转化,cocos2d中也未我们提供了相应的方法:

 

Vec2Director::convertToGL(constVec2& uiPoint);

       这个方法将UI坐标系转换为OpenGL坐标系。

 

Vec2Director::convertToUI(constVec2& glPoint);

       这个方法将OpenGL坐标系转换为UI坐标系。

 

Vec2Node::convertToWorldSpace(constVec2& nodePoint) const;

       这个方法将物体的相对坐标

 

Vec2Node::convertToNodeSpace(constVec2& worldPoint) const;

       这个方法将世界坐标转化为某一节点的相对坐标。

 

还有两个转化的方法与上面类似,只有一点不同,这两个方法参照的原点不是系统默认的,而是我们设置的节点的锚点:

 

Vec2Node::convertToNodeSpaceAR(constVec2& worldPoint) const;

 

Vec2Node::convertToWorldSpaceAR(constVec2& nodePoint) const;

 

六、锚点

   锚点的概念可以理解为参照点,其设置范围为0-1,系统默认的节点锚点为(0,0)。在UI坐标系中,(0,0)点就是节点的左上角,在OpenGL坐标系中,(0,0)点就是节点的左下角。例如,如果我将锚点设置为(0.5,0.5),则在UI和OpenGL坐标系中,(0,0)点都是节点的中心点。又如,我将锚点设置为(1,1),则在UI坐标系中,原点为右下角,在OpenGL坐标系中,原点为右上角,锚点的用处就是更改参考点,在另一种情形下,锚点对程序也会产生很大的影响,就是当我们设置一个节点旋转或者缩放时,节点会以锚点位置为中心进行旋转或缩放。

   cocos2d中通过下面方法分别来设置和获取锚点:

 

voidSprite::setAnchorPoint(constVec2& anchor);

设置锚点

constVec2& Node::getAnchorPoint() const;

获取锚点


目录
相关文章
08 QT - Qt窗口坐标体系
08 QT - Qt窗口坐标体系
43 0
|
3月前
【qt】平面CAD(计算机辅助设计 )项目 上
【qt】平面CAD(计算机辅助设计 )项目 上
42 0
|
6月前
【Qt 学习笔记】Qt的坐标体系
【Qt 学习笔记】Qt的坐标体系
92 0
|
数据可视化
Qt开发技术:Q3D图表开发笔记(三):Q3DSurface三维曲面图介绍、Demo以及代码详解
qt提供了q3d进行三维开发,虽然这个框架没有得到大量运用也不是那么成功,性能上也有很大的欠缺,但是普通的点到为止的应用展示还是可以的。其中就包括华丽绚烂的三维图表,数据量不大的时候是可以使用的。前面介绍了基础的q3d散点图、柱状图,本篇介绍基础的三维曲面图。Q3DSurface类提供了渲染3D曲面图的方法。该类使开发人员能够渲染3D表面图,并通过自由旋转场景来查看它们。可以通过QSurface3DSeries控制曲面的视觉财产,例如绘制模式和着色。
|
计算机视觉
项目实战:Qt贝塞尔曲线拽托顶点实时显示工具
项目实战:Qt贝塞尔曲线拽托顶点实时显示工具
项目实战:Qt贝塞尔曲线拽托顶点实时显示工具
|
开发工具 C语言
Qt编写自定义控件22-蚂蚁线
一、前言 关于蚂蚁线控件,相信很多用过PS的人都知道,在选中某个区域以后,边上的线条会有一种动态流动的效果,这种效果就叫做蚂蚁线,百科的解释是:动物的一种本能现象,领头的蚂蚁以随机的路线走向食物或洞穴,第二只蚂蚁紧跟其后以相同的路线行走,每一个后来的蚂蚁紧跟前面蚂蚁行走,排成一条线的现象。
1146 0