Cocos2dx 3.0 过渡篇(二十九)globalZOrder()与localZOrder()
-----------
这篇博客的标题本想叫“...3.0新的渲染...介绍”,最后还是拉不下这个脸。为啥?认为自己对渲染的认识还是过于表面。谈不上理解。当然了,这并不影响这篇博客继续写下去。
以下看一段3.0Release Notes 对于新渲染器的一段介绍:
Node 添加了新的函数 setGlobalZOrder() / getGlobalZOrder(),之前的旧函数 setZOrder() / getZOrder() 也被重命名为 setLocalZOrder() / getLocalZOrder()。
好了。看到这里我不得不停下来。接下来请再次同意我用沉重的语气悼念多少年来一直陪伴我们左右的"setZOrder()/getZOrder()君。是谁。在我们最须要帮助的时候指引我们上下的方向;是谁,告诉我们应怎样在茫茫层海中确定自己的位置?是的。是他们......goodBye,my love...
擦干眼泪。我们继续往下看看这个GlobalZOrder与LocalZOrder究竟是什么碗糕?
globalZOrder 是用于 渲染器 中用来给“绘制命令”排序的
localZOrder 是用于父节点的子节点数组中给 节点 对象排序的
假设上面抄袭的这段话不太理解的话。我举个样例:假设localZOrder是微博,globalZOrder是facebook。
微博上你再怎么扑腾。那影响的范围也就仅仅是在国内,省内,市内;而facebook就不一样了,毕竟它立足于全世界。你的一句话影响的范围非常可能就是世界性的。
好了,样例举完了。挺好理解的吧。
假设你还说不理解的话,那我还真拿你有办法!请擦亮眼睛看以下的样例:
是的。这次我们的主角又出场了,热烈欢迎boy,girl_1,girl_3(男主,女主,小三)。假设你还认为这是单纯的男女间的追来追去,那你就太单纯了。
1、创建男主
auto boy = Sprite::create("boy.png");
boy->setPosition(Point(350,300));
this->addChild(boy,1);//Z值设为1
2、创建女主
auto girl_1 = Sprite::create("girl_1.png");
girl_1->setPosition(Point(15,10));
boy->addChild(girl_1,1);//Z值为1
我们都知道。女主是属于男主的。所以是:boy->addChild(girl_1,1);程序执行后如图所看到的。能够看到。女主是压在男主上面的(请不要想太多,谢谢)。
可是男主不服啊!身为一个男人又怎能让女人压在上面?是可忍孰不可忍(非常明显,男主想歪了)!
于是他想尽办法要翻身做主人!他首先想到的是使用localZOrder。也就是以下这条代码:
boy->setLocalZOrder(100);//和之前的setZOrder的功能一样
事实是非常残酷的,男主哀嚎一声:坑爹啊。难道就没有办法了吗?就在这时,男主眼前一亮!
由于他看到了路边贴的牛皮癣广告,广告词赫然写着:治不*不*,请使用setGlobalORder(),还你**风採。于是男主赶紧尝试了下:
boy->setGlobalZOrder(100);
果然,一个疗程过去,男主真的在女主上面了!
实在是太奇妙了!如图所看到的:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3RhcjUzMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
3、小三出现
先把小三创建出来。 小三毕竟不是正统,所以不用加到男主身上。
auto girl_3 = Sprite::create("girl_3.png");
girl_3->setPosition(Point(340,290));
this->addChild(girl_3,2);//Z值为2
从代码能够看出来,小三的Z值设置为2。而男主的Z值为1,假设依照正常的逻辑来看,无论女主怎么化妆。小三都注定是比她更有吸引力(也就是小三会在女主上面)。例如以下图
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3RhcjUzMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
女主不服啊!阴差阳错之下,她看到了微博上的化妆品营销广告:“战胜小三。请使用setGlobalZOrder(),一个疗程。一次见效!
”。抱着破罐子破摔的心理,女主也尝试了下:
girl_1->setGlobalZOrder(100);
执行一看,真的有效啊!
感谢博主,感谢cocos2dx3.0。
是的了,cocos2dx3.0就是这么奇妙!假设你还在使用2.0那你就out啦!赶紧拿起电话, 拨打110订购吧!
仅仅要998,3.0带回家。钱请直接打到我支付宝账户上面。
谢谢!
尊重原创。转载请注明来源:http://blog.csdn.net/star530/article/details/24576057
Cocos2dx 3.0 过渡篇(二十九)globalZOrder()与localZOrder()的更多相关文章
- Cocos2dx 3.0 过渡篇(三十)灰机还是3D好(Sprite3D)
如今都非常少发3.0过渡篇这一系列的博文了,原因是多方面的,一个是游戏开发进度,尽管上面并没给我什么压力,但我自己一直在赶.还有一方面是个人私生活这块.五月份确实是多事之秋,有时候真的没办法全心思去研 ...
- Cocos2dx 3.0 过渡篇(二十六)C++11多线程std::thread的简单使用(上)
昨天练车时有一MM与我交替着练,聊了几句话就多了起来,我对她说:"看到前面那俩教练没?老色鬼两枚!整天调戏女学员."她说:"还好啦,这毕竟是他们的乐趣所在,你不认为教练每 ...
- Cocos2dx 3.0 过渡篇(二十八)C++11强类型枚举
一朋友在微信朋友圈晒了张照片,随手点开大图,带着赞赏的眼光扫了下,恩,几个月不见.又美丽了...咦?等等,她戴的这是什么?酷炫的造型! 金属边框! 微型摄像头! 这不是传说中的谷歌眼镜么?土豪啊,还好 ...
- Cocos2dx 3.0 过渡篇(三十一)ValueVector和Vector不得不说的故事
本文投票地址:http://vote.blog.csdn.net/Article/Details?articleid=37834689 前天看到一个颇为纠结的选择题:有一天你遇到一个外星人,这时外星人 ...
- Cocos2dx 3.0 过渡篇(二十五)死不了的贪食蛇(触摸版)
上一篇写的贪食蛇的重力感应控制版,这一篇就讲下触摸控制版吧.额,也不知道写了那个贪食蛇教程究竟有没有获得沈老师的书,假设没有的话,看我不拿西瓜刀砍掉 偶尔E往事 的那啥! 重力版链接:http://b ...
- Cocos2dx 3.0 过渡篇(二十七)C++11多线程std::thread的简单使用(下)
本篇接上篇继续讲:上篇传送门:http://blog.csdn.net/star530/article/details/24186783 简单的东西我都说的几乎相同了,想挖点深的差点把自己给填进去. ...
- 【黑金原创教程】【FPGA那些事儿-驱动篇I 】原创教程连载导读【连载完成,共二十九章】
前言: 无数昼夜的来回轮替以后,这本<驱动篇I>终于编辑完毕了,笔者真的感动到连鼻涕也流下来.所谓驱动就是认识硬件,还有前期建模.虽然<驱动篇I>的硬件都是我们熟悉的老友记,例 ...
- 《手把手教你》系列技巧篇(二十九)-java+ selenium自动化测试- Actions的相关操作上篇(详解教程)
1.简介 有些测试场景或者事件,Selenium根本就没有直接提供方法去操作,而且也不可能把各种测试场景都全面覆盖提供方法去操作.比如:就像鼠标悬停,一般测试场景鼠标悬停分两种常见,一种是鼠标悬停在某 ...
- WCF技术剖析之二十九:换种不同的方式调用WCF服务[提供源代码下载]
原文:WCF技术剖析之二十九:换种不同的方式调用WCF服务[提供源代码下载] 我们有两种典型的WCF调用方式:通过SvcUtil.exe(或者添加Web引用)导入发布的服务元数据生成服务代理相关的代码 ...
随机推荐
- Intent相关
Intent是什么? 翻译为:意图,目的(名词) 其实根本没必要管它是什么,看看它能做什么就好了. 不过后来我知道了,它就是个机制----通信机制-----android的许多组件间的交流要依赖它. ...
- TLCL中英对照版
TLCL中英文对照阅读网址:http://billie66.github.io/TLCL/book/index.html 感谢好奇猫团队(http://haoqicat.com/about/team) ...
- 如何杀掉当前正在执行的hadoop任务
[root@Slave01 ~]# hadoop job -listDEPRECATED: Use of this script to execute mapred command is deprec ...
- erlang observer工具
1.服务器安装wxWidgets,之前需要装gtk+库 2.客户端安装otp_win64_17.5.exe 3.快捷方式点属性,在D:\erl6.4\bin\werl.exe后面加上参数 -setco ...
- WPF 简介
简介 一. WPF产生的背景 因为人们的生活水平不断提前,审美观也随着提升,而软件的应用发展水平目前无法赶上大家的审美观和使用要求:比如:像电影中的软件能够方便的使用,而且有动态的效果同时附加形象 ...
- 【转】从零开始编写自己的C#框架(7)——需求分析
转自:http://www.cnblogs.com/EmptyFS/p/3653934.html 本章内容虽然叫“需求分析”,实际上关于具体的需求分析操作步骤并没有深入去写,因为细化的话那将是一本厚厚 ...
- express 学习笔记
首先把这个库加载下来 npm install -g express 这样会安装它所有依赖包,这个非常恐怖.这个框架要依赖这么多外来的东西,如果有一个不与时俱进就会拖累整个框架的质量. C:\windo ...
- POJ-2785 4 Values whose Sum is 0(折半枚举 sort + 二分)
题目链接:http://poj.org/problem?id=2785 题意是给你4个数列.要从每个数列中各取一个数,使得四个数的sum为0,求出这样的组合的情况个数. 其中一个数列有多个相同的数字时 ...
- 在VSTO界面中,调用xll中的函数
最近研究各种有点迷茫了,原来Xll的加载宏直接可以在C#中调用的,我又各种Out了. 先说明一下,在VBA中,如何调用吧 XLLFound = Application.RegisterXLL(This ...
- java设计模式(装饰模式)
装饰模式实现了可以动态地为原对象扩展方法 装饰对象与被装饰的都实现了同一个接口(或抽象类) 举个例子: 工作 可以边吃东西边工作,也可以边喝东西边工作,还可以工作的时候边吃边喝 创建共同接口 Work ...