Cocos2d-x v3.1 坐标系统(五)

为了能够更好的布局以及了解对象所在的位置,我们必须对Cocos2d-x中的坐标有详细的了解,本篇文章主要就是了解Cocos中用到的坐标系统。学过数学的人都知道“笛卡儿坐标系统”,在“笛卡儿坐标系统”中又分为了左手坐标系和右手坐标系。我们所了解的Direct3D和OpenGL分别使用了“左手坐标系统”和“右手坐标系统”,那Cocos2d-x使用的是什么样的做坐标系统呢?由于Cocos2d-x是基于OpenGL开发的当就使用了右手坐标系统。由于Cocos2d-x是一个2D的游戏引擎所有我们只用到了X和Y轴。

前面只是普及了哈坐标系统的概念,那究竟在Cocos2d-x中有几个坐标系统呢?

1. OpenGL坐标系

坐标原点在屏幕的左下方,X轴向右为正,Y轴向上为正。如下图:

图.1

2. 世界坐标系

也叫绝对坐标系,原点与OpenGL坐标系原点位置一致。“世界”指游戏世界,它建立了描述其他坐标系所需要的参考标准。如图.1

3. 屏幕坐标系统

也叫UI坐标系,主要用于我们在触摸屏幕时,那个触摸点就是传入的屏幕坐标,原点在左上角X轴向右为正,Y轴向下为正。

图.2

4. 本地坐标系

也叫相对坐标系,它是相对于父节点的。它的坐标原点在父对象的左下角。假设我们在场景中有两个对象Node1和Node2.Node1是Node2的父节点,Node1的位置是Vec2(200, 200)。Node2的位置为Vec(0,0),锚点为Vec2(0.5, 0.5),此时Node2的位置就是相对位置,它是相对于Node1的。效果如图.3所示:

图.3

锚点

锚点就是对象(Node及派生对象)的一个定位点,我们对于对象的定位,旋转都是基于锚点的。默认对象的锚点是Vec2(0.5, 0.5)也就是在对象的中心。如下图.4所示:

图.4

中间那个红点就是锚点,当然我么也可以把锚点设置到其他位置。比如我们将它的锚点设置为Vec2(0, 0)。也就是对象的左下角。如图.5所示:

图.5

Cocos2d-x v3.1 坐标系统(五)的更多相关文章

  1. Cocos2D中Action的进阶使用技巧(二)

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 上回说到解决办法是使用CCTargetedAction类. C ...

  2. [置顶] android LBS的研究与分享(附PPT)

    早上起床后想想以前的工作有什么可以分享的... 两年前,前公司在做一个陌生人交友的社交软件(比陌陌还早),需要研究LBS的相关工作(这里面主要研究的是Google定位)... 一.简要调研结果 很多 ...

  3. Cocos2d-android游戏引擎-介绍

    一.游戏引擎概念 什么是游戏引擎       游戏引擎是指一些已编写好的可编辑游戏系统或者一些交互式实时图像应用程序的核心组件.这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计 ...

  4. 深入解读Service Mesh背后的技术细节

    在Kubernetes称为容器编排的标准之后,Service Mesh开始火了起来,但是很多文章讲概念的多,讲技术细节的少,所以专门写一篇文章,来解析Service Mesh背后的技术细节. 一.Se ...

  5. Django之admin管理数据库,cookie验证及分页设置

    一.admin管理数据库 1)models.py创建class类表 class Book(models.Model): name=models.CharField(max_length=) price ...

  6. keystone部署及操作

    目录 一  版本信息 二  部署keystone 三  keystone操作 四  验证 五  创建脚本 六  keystone使用套路总结 一.版本信息 官网http://docs.openstac ...

  7. Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(五)

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 为了暂时不影响原来的cat移动方法,我们在CatSprite.m ...

  8. Cocos2D v2.0至v3.x简洁转换指南(五)

    资源管理 如果你没有计划用SpriteBuilder,你可以继续使用后缀去管理各种不同解决方案中的图像. 首先,你需要在AppDelegate.m中将[CCBReader configrueCCFil ...

  9. 【D3.V3.js系列教程】--(十五)SVG基本图形绘制

    [D3.V3.js系列教程]--(十五)SVG基本图形绘制 1.path <!DOCTYPE html> <html> <head> <meta charse ...

随机推荐

  1. 很随意的让你了解 - 最小生成树之Prim算法

    首先分成两个容器. 第一个容器就是装有生成树里面的顶点,第二个容器就是装有没有放入这个第一个容器中的顶点. 首先默认往第一个容器里面装一个顶点.然后..计算出第二个容器里所有顶点和这个顶点的距离.没有 ...

  2. 使用python已知平均数求随机数

    问题描述:产生40个数,范围是363-429之间,平均值为402 思路: 1 产生一个随机数 2 使用平均数减去随机数求出第二个数,生成20组 3 将排序打乱 # -*- coding: cp936 ...

  3. Umbraco back office 中form显示不出来的问题

    问题纠结了好久,没找到什么原因,具体就是在back office中,form显示不出来.如下: 按下F12,在chrome 的developer tools中发现如下错误 找了半天不知道原因,后来看到 ...

  4. HDU 5236 Article (概率DP+贪心)

    题意:要求输入一篇N个字符的文章,对所有非负整数i:每到第i+0.1秒时可以输入一个文章字符,每到第i+0.9秒时有P的概率崩溃(回到开头或者上一个存盘点) 每到第i秒有一次机会可以选择按下X个键存盘 ...

  5. Note: ENDBOX: Scalable Middlebox Functions Using Client-Side Trusted Execution

    ENDBOX enable secure networking by client-Side trusted execution. What ENDBOX is a scalable middlebo ...

  6. CodeForces 118C 【模拟】

    思路: 枚举0-9之间的数,然后判断. 然后一鼓作气打成了大模拟....我日啊... 心疼自己. #include <bits/stdc++.h> using namespace std; ...

  7. Git练习1

  8. 3、kvm配置vnc

    配置kvm通过vnc访问 virsh edit privi-server 添加如下配置: <graphics type='vnc' port='5901' autoport='no' liste ...

  9. CCF201809(Java)

    第一题: 问题描述 在一条街上有n个卖菜的商店,按1至n的顺序排成一排,这些商店都卖一种蔬菜. 第一天,每个商店都自己定了一个价格.店主们希望自己的菜价和其他商店的一致,第二天,每一家商店都会根据他自 ...

  10. NppFTP小插件的使用

    大家在Linux系统中配置运行环境时,一定会遇到相关配置文件的修改,虽说在Linux系统中可以使用vi,vim的命令进行文本编辑,但是操作起来还是没有在Windows系统中用的爽,特别是操作大文本量的 ...