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引用)导入发布的服务元数据生成服务代理相关的代码 ...
随机推荐
- 凸包模板 POJ1873
// 凸包模板 POJ1873 // n=15所以可以按位枚举求凸包,再记录数据 #include <iostream> #include <cstdio> #include ...
- Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) -> [Help 1]
mvn war:war命令出错: 原因: maven的web项目默认的webroot是在src\main\webapp.如果在此目录下找不到web.xml就抛出以上的异常. 解决方案: 在pom.xm ...
- pip install 下载慢的问题
建个文件 ~/.pip/pip.conf, 内容如下 [global] timeout = 6000 index-url = https://pypi.doubanio.com/simple [ins ...
- tinyxml2简单使用
引入头文件 <span style="font-size:18px;">#include "HelloWorldScene.h" #include ...
- HDU 1787 GCD Again(欧拉函数,水题)
GCD Again Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- Ubuntu 14.04 LTS中怎样解决系统设置残缺的问题
iBus卸载之后,系统设置会缺失,是Ubuntu 14.04和iBus之间的关系引起的,但是如果直接安装 sudo apt-get install ubuntu-desktop 这个会把amazon广 ...
- AJAX制作JSON格式的实时更新数据的方法
之前有写过这样的文章,但是出现了几个问题,第一,如果每秒都像数据库发送请求势必会造成服务器的压力过大,第二,如果使用JS的话,是不可以取得系统时间的,因为JS运行在客户端,所以只能取得客户端时间, 如 ...
- HDU1001
求和 #include<stdio.h> int main() { long n; while(scanf("%ld",&n)!=EOF){ long i; ; ...
- socket 连接,使得地址马上可以重用
/* 使地址马上可以重用 */ ...
- linux中less命令使用
less与cat和more的区别: cat命令功能用于显示整个文件的内容单独使用没有翻页功能因此经常和more命令搭配使用,cat命令还有就是将数个文件合并成一个文件的功能. more命令功能:让画面 ...