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

-----------
这篇博客的标题本想叫“...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()的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

  7. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】原创教程连载导读【连载完成,共二十九章】

    前言: 无数昼夜的来回轮替以后,这本<驱动篇I>终于编辑完毕了,笔者真的感动到连鼻涕也流下来.所谓驱动就是认识硬件,还有前期建模.虽然<驱动篇I>的硬件都是我们熟悉的老友记,例 ...

  8. 《手把手教你》系列技巧篇(二十九)-java+ selenium自动化测试- Actions的相关操作上篇(详解教程)

    1.简介 有些测试场景或者事件,Selenium根本就没有直接提供方法去操作,而且也不可能把各种测试场景都全面覆盖提供方法去操作.比如:就像鼠标悬停,一般测试场景鼠标悬停分两种常见,一种是鼠标悬停在某 ...

  9. WCF技术剖析之二十九:换种不同的方式调用WCF服务[提供源代码下载]

    原文:WCF技术剖析之二十九:换种不同的方式调用WCF服务[提供源代码下载] 我们有两种典型的WCF调用方式:通过SvcUtil.exe(或者添加Web引用)导入发布的服务元数据生成服务代理相关的代码 ...

随机推荐

  1. CSS中animate属性

    我记得,在工作中直接使用animation,只要能做出动画就完了,根本没有看每一个细节. 其实,这样做对于我们来说,的确没有错,因为工作中没有时间给你看每一个细节,大致看一篇就没下文了. 当我们想要好 ...

  2. c/c++工程中外部头文件及库添加方法

    在VS工程中,添加c/c++工程中外部头文件及库的基本步骤: 1.添加工程的头文件目录:工程---属性---配置属性---c/c++---常规---附加包含目录:加上头文件存放目录. 2.添加文件引用 ...

  3. 将dataset写入数据库

    最近在将excel中的文件导入到数据库中,用程序进行编写,由于数据量较大所以速度很慢,后来采用了SqlBulkCopy类,解决了速度的问题,我就insert语句,sqldataadapter.upda ...

  4. Xcode集成Google Test

    Xcode集成Google Test 1.下载源代码https://github.com/google/googletest 2.进入下载文件目录下googletest/make中运行make gte ...

  5. logback打印不出日志

    原因: 1. 可能是jar包不完整 , 基本jar包包括:  logback-access , logback-core , logback-classic , perf4j , slf4j-api ...

  6. easyui dialog遮罩层

    当dialog在一个iframe里时,此dialog的遮罩层也会只覆盖这个iframe,要想覆盖整个页面,就把dialog写到最外层的父页面中去,此时dialog的遮罩层会自动覆盖整个页面,若需要从子 ...

  7. 第三百四十天 how can I 坚持

    感觉还是要制定个计划,做不做不到是一回事,但是得制定.目标,一年时间进小米,加油,fordream 计划好好想想,技不在多,精就好. 晚上写了写杨辉三角,都不记得什么是杨辉三角了. 人言落日是天涯,望 ...

  8. Unity3D Script KeynoteII

    [Unity3D Script KeynoteII] 1.使用代码操作Particle. //粒子对象 GameObject particle = null; //粒子X轴方向速度 float vel ...

  9. gcc -D

    [gcc -D] -D name Predefine name as a macro, with definition 1. 通常debug和release版的区别就在于是否有DEBUG宏,DEBUG ...

  10. django 命名空间详解

    include(module[, namespace=None, app_name=None ]) include(pattern_list) include((pattern_list, app_n ...