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引用)导入发布的服务元数据生成服务代理相关的代码 ...
随机推荐
- IE对toLocaleString小数位处理
在js中对数值的格式化经常会用到四舍五入.保留小数位数.百分制格式化,分别会用到以下方法 <script type="text/javascript"> var n = ...
- 使用Thrift RPC编写程序(服务端和客户端)
1. Thrift类介绍 Thrift代码包(位于thrift-0.6.1/lib/cpp/src)有以下几个目录: concurrency:并发和时钟管理方面的库processor:Processo ...
- Redis批量导入数据
首先准备数据文件 格式为 SET Key0 Value0 SET Key1 Value1 ... SET KeyN ValueN 利用shell转换数据 #!/bin/bash while read ...
- .NET在IE9中页面间URL传递中文变成乱码的解决办法
在.Net的项目中,鼠标点击查询按钮,转到查询页面,但URL中包含中文时,传到服务器端后,中文变成了乱码(只有IE9出现该问题). 尝试使用Server.UrlEncode()进行编码, ...
- 基于AWS的自动化部署实践
过年前,我给InfoQ写了篇文章详细介绍我们团队在过去4年基于AWS的自动化部署实践.文章包括了:为什么选择AWS.AWS上自动化部署的优势和挑战.我们的解决方案,以及和AWS DevOps方案(Op ...
- 转】腾讯云CentOS 6.6安装 Nginx
原博文出自于: http://www.cnblogs.com/xdp-gacl/p/5290155.html 感谢! 一.下载Nginx 从Nginx的官网(http://nginx.org/en/d ...
- Gradle 1.3之前的Publishing artifacts
在Gradle1.3之前,Publishing artifacts是使用uploadConfigurationName来publish 声明artifacts是靠使用 build.gradle art ...
- ActiveX控件
什么是ActiveX控件:一个进程内服务器,支持多种的COM接口.(可以理解为,一个COM接口是一个纯抽象基类,你实现了它,并且它支持自注册,就是一个ActiveX控件了)可以把ActiveX控件看做 ...
- c# 解决IIS写Excel的权限问题
c# 解决IIS写Excel的权限问题 from: http://www.jb51.net/article/31473.htm 发布:mdxy-dxy 字体:[增加 减小] 类型:转载 使用以上方法必 ...
- hdu1753I Hate It(线段树)
http://acm.hdu.edu.cn/showproblem.php?pid=1754 单点更新,区间求最值 // File Name: hdu1754.cpp // Author: bo_jw ...