cocos2dx之锚点/坐标系/精灵 详解
(1)什么是锚点
当我们插入一张图片时,我们需要调整它的位置。假如一张空白的画布是背景,那么当我们插入一张图片时,我们如何确定图片的位置呢?图片可以看做一个精灵,也就是一个节点。那么对于一个节点的位置很好判断,那就是以背景画布建立坐标系。一般来说,父节点的坐标原点默认为(0,0),也就是说,对于一个960*640的游戏窗口,左下角为(0,0),右上角为(960,640)。如果要将图片(也就是子节点)插入到画布上,那么就是设定坐标为(480,320)。
但问题是,我们只能确保代表图片元素的这个节点是位于最中间的,我们并不能确保整张图片看起来是位于画布最中间,因为图片本身也有大小。那么这里就涉及到一个问题,图片的哪一个点代表整张图片的位置?这个点呢,也被称作锚点。(重点总结)
如上图所示,空白代表着背景画布,我们插入的图片是一个蓝色的矩形。如果我们想让矩形看起来位于背景画布的中央,那么我们就应该将锚点设置为矩形的最中央。那么这样一来,只要锚点位于背景中央,自然就代表了矩形位于背景中央。再者,如果将锚点设为矩形左下角,那么当我们设置图片位置为(480,320)时,矩形其实并没有像我们所想的那样位于画布中间,而是矩形左下角位于(480,320)这个位置,这样看起来矩形就处于画布的右上部分。
这样我们就能很容易的明白cocos官方文档中对于锚点的解释了,如下
mySprite->setPosition(Vec2(500, 0));
首先设置了精灵的位置为(500,0),精灵一般为
然后分别设置不同的锚点,精灵的位置发生变化
因为我们已经确定了位置(500,0),当分别设置精灵不同位置的锚点,即显示位置也不同。
当我们想设置一个精灵的位置时,主要是使用 setPosition() 方法,只有想改变精灵与基准坐标点的相对位置时,才考虑使用 setAnchorPoint() 设置锚点。
值得一提的是,锚点的范围是从(0,0)到(1,1),同时默认锚点值为(0.5,0.5)。
一般Node的锚点默认为(0.5, 0.5),而Layer的锚点则在左下角(0,0)。
(2)Cocos2d-x 用右手坐标系,也就是说坐标原点(0,0)在展示区的左下角,当你在场景里放置一些节点对象设置坐标位置时,注意左下角是坐标计算的起点。
(3)精灵(Sprite)
之前我们提到,精灵是屏幕上移动的对象,它能被控制。你喜欢玩的游戏中主角可能就是一个精灵,我知道你在想是不是每个图形对象都是一个精灵,不是的,为什么? 如果你能控制它,它才是一个精灵,如果无法控制,那就只是一个节点(Node)。
准确的说,精灵(Sprite) 是一个能通过改变自身的属性:角度,位置,缩放,颜色等,变成可控制动画的 2D 图像。
可以使用一张图像来创建精灵,PNG, JPEG, TIFF, WebP, 这几个格式都可以。
cocos2dx之锚点/坐标系/精灵 详解相关推荐
- cocos2dx标准容器_Cocos2d-x3.0模版容器详解之三:cocos2d::Value
1.概述 版本: v3.0 beta 语言: C++ 定义在 "COCOS2DX_ROOT/cocos/base" 路径下的 "CCValue.h" 的头文件中 ...
- cocos2dx-lua v3 -sprit 精灵详解
尊重版权:文章转载自,http://www.2cto.com/kf/201505/398833.html 仅为个人使用. 精灵类是Sprite,它的类图如下图所示. Sprite类图Sprite类直 ...
- 我国常用的投影坐标系_【干货】arcgis中坐标系问题详解
地理空间的数学基础是空间分析的基准,在GIS中,所有的空间数据都要划归到统一的空间参考下才可以进行进一步的空间分析.地球空间参考解决的是地球的空间定位和数学描述问题,投影解决的是将地球曲面信息映射到二 ...
- 视频教程-Cocos2d-x 游戏开发详解-Cocos
Cocos2d-x 游戏开发详解 1999年开始从事开发工作,具备十余年的开发.管理和培训经验. 在无线通信.Android.iOS.HTML5.游戏开发.JavaME.JavaEE.Linux等领域 ...
- Cocos2d-x win7 + vs2010 配置图文详解(亲测)
Cocos2d-x win7 + vs2010 配置图文详解(亲测) 下载最新版的cocos2d-x.打开浏览器,输入cocos2d-x.org,然后选择Download,本教程写作时最新版本为coc ...
- 天猫精灵方糖拆解报告和芯片详解
折腾: [记录]天猫精灵方糖拆解过程 后,下面详细整理关于芯片的信息. 总体截图: 各个单元: MEDIATEK ARM MT8516AAAA 1812-BZASH BET02027 ACMQPQ8K ...
- 2000坐标系xy坐标几位_详解| 带你认识新一代坐标系——2000国家大地坐标系
原标题:详解| 带你认识新一代坐标系--2000国家大地坐标系 2018年7月1日起全面使用2000国家大地坐标系的消息,让不少人感慨国之大动作的同时,纷纷摸不着头脑.何为2000国家大地坐标系?对日 ...
- Unity:锚点详解
锚点时基于父对象让子对象定位用的.所以我们移动锚点时候的范围就是父对象的宽和高. 锚点在一起时 这四个三角形在一起时意味着锚点在一起 当锚点在一起的时候,图片的大小不会随着父对象的大小改变而改变:图片 ...
- 地理坐标系和投影坐标系详解(及坐标系在ArcGIS中的应用)
标题地理坐标系和投影坐标系详解(及坐标系在ArcGIS中的应用)
最新文章
- 解释型和编译型编程语言_解释型和编译型编程语言:有什么区别?
- IBM GSA Senior DBA招聘
- 使用nsenter进入docker namespace
- 详解python中的用法_详解python中*号的用法
- 深度案例 | 中商惠民:如何用数据洞察商超需求 重塑高效流通链
- 软件推荐-有道超级计算器
- IOS开发之MD5加密和钥匙串的使用-oc
- Java代码中方法的特殊修饰符/修饰词/关键字
- 删库不必跑路,谈数据库删除设计
- django 1.8 官方文档翻译:13-12 验证器
- 【matplotlib笔记】plt.subplot()绘制子图
- 为什么鸟哥说 int 再怎么随机也申请不到奇数地址
- 如果理解Javascript利用闭包循环绑定事件
- 使用 MonoGame* 开发游戏
- uva 563(最大流)
- Ubuntu下安装Fcitx和美化Fcitx,解决方框错误.
- 指纹识别 python实现_Python还真当是无所不能!利用Python做指纹识别播报!闻所未闻!-站长资讯中心...
- java interface作用是什么_关于Java反射原理:
- 无法访问 请与这台计算机,我们办公室两台电脑想连接一个共享的打印机,但是连接的时候,总是显示无法访问,请与这台计算机的管理员联系,应该怎么设置啊...
- EasyAR(一)——显示模型