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. 《精通Spring4.X企业应用开发实战》读后感第七章(AOP概念)

  2. C#中IQueryable和IEnumerable的区别

    最近的一个面试中,被问到IQueryable 和 IEnumerable的区别, 我自己看了一些文章,总结如下: 1. 要明白一点,IQueryable接口是继承自IEnumerable的接口的. 2 ...

  3. linux 的 scp 命令

    linux 的 scp 命令 可以 在 linux 之间复制 文件 和 目录: ================== scp 命令 ================== scp 可以在 2个 linu ...

  4. C语言函数调用的底层机制

    由这个文章引入吧(百度文库:http://wenku.baidu.com/link?url=aAm1tBg4okqIyFAmfgrJBHdPDrri5LUEKrJjn-dNITds5lwSm550DT ...

  5. [poj 1276] Cash Machine 多重背包及优化

    Description A Bank plans to install a machine for cash withdrawal. The machine is able to deliver ap ...

  6. [Django笔记] django结构分析

    看了一段时间django官方文档,先把自己理解的django目录结构记录一下 目录结构 一个成熟的django项目的结构大致如下: /project/ |-- project/ |-- setting ...

  7. [Xcode 实际操作]四、常用控件-(8)UITextField控件的使用

    目录:[Swift]Xcode实际操作 本文将演示文本输入框控件的基本用法. 文本输入框主要用来接收和显示用户输入的内容. 在项目导航区,打开视图控制器的代码文件[ViewController.swi ...

  8. 如何看待 Kotlin 成为 Android 官方支持开发语言

    Google IO 2017宣布了 Kotlin 会成为 Android 官方开发语言.一时间朋友圈和Android圈被各种刷屏.当然我也顺势而为发布了一篇的文章<为什么我要改用Kotlin&g ...

  9. d190305面试题01总结

    题目一: 题目二: 题目三: 类中的某个成员变量可以被他和他的子类访问,应该用protected 知识点: 1.类中public修饰的属性,方法可以被该类,子孙类和外部类访问. 2.类中protect ...

  10. 基于CentOS系统下的Oracle的安装

    背景 最近的数据库的实验课,要求利用虚拟机安装CentOS系统,并在此系统上安装Oracle_11g软件实现监听,在windows系统上安装SQL Developer软件作为客户端 ,从而可以在SQL ...