这篇博客的标题本想叫“...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、创建男主

1.auto boy = Sprite::create("boy.png");
2.boy->setPosition(Point(350,300));
3.this->addChild(boy,1);//Z值设为1

2、创建女主

1.auto girl_1 = Sprite::create("girl_1.png");
2.girl_1->setPosition(Point(15,10));
3.boy->addChild(girl_1,1);//Z值为1

我们都知道,女主是属于男主的,所以是:boy->addChild(girl_1,1);程序运行后如图所示,可以看到,女主是压在男主上面的(请不要想太多,谢谢)

但是男主不服啊!身为一个男人又怎能让女人压在上面?是可忍孰不可忍(很明显,男主想歪了)!于是他想尽办法要翻身做主人!他首先想到的是使用localZOrder,也就是下面这条代码:

1.boy->setLocalZOrder(100);//和之前的setZOrder的功能一样

事实是很残酷的,男主哀嚎一声:坑爹啊!难道就没有办法了吗?就在这时,男主眼前一亮!因为他看到了路边贴的牛皮癣广告,广告词赫然写着:治不*不*,请使用setGlobalORder(),还你**风采。于是男主赶紧尝试了下:

1.boy->setGlobalZOrder(100);

果然,一个疗程过去,男主真的在女主上面了!实在是太神奇了!如图所示:

3、小三出现
先把小三创建出来, 小三毕竟不是正统,所以不用加到男主身上。

1.auto girl_3 = Sprite::create("girl_3.png");
2.girl_3->setPosition(Point(340,290));
3.this->addChild(girl_3,2);//Z值为2

从代码可以看出来,小三的Z值设置为2,而男主的Z值为1,如果按照正常的逻辑来看,不管女主怎么化妆,小三都注定是比她更有吸引力(也就是小三会在女主上面),如下图

女主不服啊!阴差阳错之下,她看到了微博上的化妆品营销广告:“战胜小三,请使用setGlobalZOrder(),一个疗程,一次见效!”,抱着破罐子破摔的心理,女主也尝试了下:

1.girl_1->setGlobalZOrder(100);

运行一看,真的有效啊!

Cocos2dx3.0过渡篇 globalZOrder()与localZOrder()的更多相关文章

  1. Cocos2dx3.0过渡篇 各种遍历与范围for语句的使用【转】

    1.CCArray的遍历看到这里,有些人又按耐不住的要举起西瓜刀了:你不是说3.0beta后已经没有CCArray这货了吗?现在又拿出来作甚?其实我也很无辜,CCArray确实是没了,但在某个不为人知 ...

  2. Cocos2dx 3.0 过渡篇(三十)灰机还是3D好(Sprite3D)

    如今都非常少发3.0过渡篇这一系列的博文了,原因是多方面的,一个是游戏开发进度,尽管上面并没给我什么压力,但我自己一直在赶.还有一方面是个人私生活这块.五月份确实是多事之秋,有时候真的没办法全心思去研 ...

  3. Cocos2dx 3.0 过渡篇(二十九)globalZOrder()与localZOrder()

    前天非常难得的加班到八点...为什么说难得呢?由于平时我差点儿就没加班过.六点下班后想走就走,想留就留.率直洒脱.不拘一格.尽显男儿本色.程序猿,就是这么自信! -----------这篇博客的标题本 ...

  4. Cocos2dx 3.0 过渡篇(三十一)ValueVector和Vector不得不说的故事

    本文投票地址:http://vote.blog.csdn.net/Article/Details?articleid=37834689 前天看到一个颇为纠结的选择题:有一天你遇到一个外星人,这时外星人 ...

  5. Cocos2dx 3.0 过渡篇(二十七)C++11多线程std::thread的简单使用(下)

    本篇接上篇继续讲:上篇传送门:http://blog.csdn.net/star530/article/details/24186783 简单的东西我都说的几乎相同了,想挖点深的差点把自己给填进去. ...

  6. Cocos2dx 3.0 过渡篇(二十六)C++11多线程std::thread的简单使用(上)

    昨天练车时有一MM与我交替着练,聊了几句话就多了起来,我对她说:"看到前面那俩教练没?老色鬼两枚!整天调戏女学员."她说:"还好啦,这毕竟是他们的乐趣所在,你不认为教练每 ...

  7. Cocos2dx 3.0 过渡篇(二十五)死不了的贪食蛇(触摸版)

    上一篇写的贪食蛇的重力感应控制版,这一篇就讲下触摸控制版吧.额,也不知道写了那个贪食蛇教程究竟有没有获得沈老师的书,假设没有的话,看我不拿西瓜刀砍掉 偶尔E往事 的那啥! 重力版链接:http://b ...

  8. Cocos2dx 3.0 过渡篇(二十八)C++11强类型枚举

    一朋友在微信朋友圈晒了张照片,随手点开大图,带着赞赏的眼光扫了下,恩,几个月不见.又美丽了...咦?等等,她戴的这是什么?酷炫的造型! 金属边框! 微型摄像头! 这不是传说中的谷歌眼镜么?土豪啊,还好 ...

  9. Cocos2d-x3.0游戏实例之《别救我》第二篇——创建物理世界

    这篇我要给大家介绍两个知识点: 1. 创建游戏物理世界 2. 没了(小若:我噗) 害怕了?不用操心.这太简单了~! 笨木头花心贡献.啥?花心?不呢.是用心~ 转载请注明,原文地址:http://www ...

随机推荐

  1. 【转-记】mysql总结

    1 | 查询所有数据  select * from Info 查所有数据 select Code,Name from Info 查特定列    2 | 根据条件查  select * from Inf ...

  2. Nmap——主机、端口扫描工具

    nmap 其基本功能有三个,一是探测一组主机是否在线:其次是扫描主机端口,嗅探所提供的网络服务:还可以推断主机所用的操作系统 . 这是百度给的介绍:http://baike.baidu.com/lin ...

  3. The 15th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple - J CONTINUE...?

    CONTINUE...? Time Limit: 1 Second      Memory Limit: 65536 KB      Special Judge DreamGrid has  clas ...

  4. 区间DP【p4290】[HAOI2008]玩具取名

    Description 某人有一套玩具,并想法给玩具命名.首先他选择WING四个字母中的任意一个字母作为玩具的基本名字.然后他会根据自己的喜好,将名字中任意一个字母用"WING"中 ...

  5. [BZOJ 2115] Xor

    Link:https://www.lydsy.com/JudgeOnline/problem.php?id=2115 Algorithm: 此题一看到是求异或和最大问题的,立即想到使用线性基解题 最终 ...

  6. 【树上莫队】bzoj3757 苹果树

    学习这位神犇的:http://blog.csdn.net/jiangyuze831/article/details/41476865 注意: ①排序时第一关键字是左端点所在块编号(块状树),第二关键字 ...

  7. Java学习笔记(4)

    控制流程语句之---------switch选择判断语句 switch(你的选择) case 值1: 符合条件执行的语句: break: case 值2: 符合条件执行的语句: break: case ...

  8. 【R笔记】使用R语言进行异常检测

    本文转载自cador<使用R语言进行异常检测> 本文结合R语言,展示了异常检测的案例,主要内容如下: (1)单变量的异常检测 (2)使用LOF(local outlier factor,局 ...

  9. Python 升级3.6

    首先:更新gcc,因为gcc版本太老会导致新版本python包编译不成功代码如下:#yum -y install gcc 然后下载python源tar包 可利用linux自带下载工具wget下载,如下 ...

  10. 误删除Ubuntu 14桌面文件夹“~/桌面”,如何恢复?

    一不小心把当前用户的桌面文件夹“/home/wenjianbao/桌面”删了,导致系统把“/home/wenjianbao”当成桌面文件夹.结果,桌面上全是乱七八糟的文件/文件夹. 查看了下网络资料, ...