Cocos2dx3.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、创建男主
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()的更多相关文章
- Cocos2dx3.0过渡篇 各种遍历与范围for语句的使用【转】
1.CCArray的遍历看到这里,有些人又按耐不住的要举起西瓜刀了:你不是说3.0beta后已经没有CCArray这货了吗?现在又拿出来作甚?其实我也很无辜,CCArray确实是没了,但在某个不为人知 ...
- Cocos2dx 3.0 过渡篇(三十)灰机还是3D好(Sprite3D)
如今都非常少发3.0过渡篇这一系列的博文了,原因是多方面的,一个是游戏开发进度,尽管上面并没给我什么压力,但我自己一直在赶.还有一方面是个人私生活这块.五月份确实是多事之秋,有时候真的没办法全心思去研 ...
- Cocos2dx 3.0 过渡篇(二十九)globalZOrder()与localZOrder()
前天非常难得的加班到八点...为什么说难得呢?由于平时我差点儿就没加班过.六点下班后想走就走,想留就留.率直洒脱.不拘一格.尽显男儿本色.程序猿,就是这么自信! -----------这篇博客的标题本 ...
- Cocos2dx 3.0 过渡篇(三十一)ValueVector和Vector不得不说的故事
本文投票地址:http://vote.blog.csdn.net/Article/Details?articleid=37834689 前天看到一个颇为纠结的选择题:有一天你遇到一个外星人,这时外星人 ...
- Cocos2dx 3.0 过渡篇(二十七)C++11多线程std::thread的简单使用(下)
本篇接上篇继续讲:上篇传送门:http://blog.csdn.net/star530/article/details/24186783 简单的东西我都说的几乎相同了,想挖点深的差点把自己给填进去. ...
- Cocos2dx 3.0 过渡篇(二十六)C++11多线程std::thread的简单使用(上)
昨天练车时有一MM与我交替着练,聊了几句话就多了起来,我对她说:"看到前面那俩教练没?老色鬼两枚!整天调戏女学员."她说:"还好啦,这毕竟是他们的乐趣所在,你不认为教练每 ...
- Cocos2dx 3.0 过渡篇(二十五)死不了的贪食蛇(触摸版)
上一篇写的贪食蛇的重力感应控制版,这一篇就讲下触摸控制版吧.额,也不知道写了那个贪食蛇教程究竟有没有获得沈老师的书,假设没有的话,看我不拿西瓜刀砍掉 偶尔E往事 的那啥! 重力版链接:http://b ...
- Cocos2dx 3.0 过渡篇(二十八)C++11强类型枚举
一朋友在微信朋友圈晒了张照片,随手点开大图,带着赞赏的眼光扫了下,恩,几个月不见.又美丽了...咦?等等,她戴的这是什么?酷炫的造型! 金属边框! 微型摄像头! 这不是传说中的谷歌眼镜么?土豪啊,还好 ...
- Cocos2d-x3.0游戏实例之《别救我》第二篇——创建物理世界
这篇我要给大家介绍两个知识点: 1. 创建游戏物理世界 2. 没了(小若:我噗) 害怕了?不用操心.这太简单了~! 笨木头花心贡献.啥?花心?不呢.是用心~ 转载请注明,原文地址:http://www ...
随机推荐
- Codeforces 538 B. Quasi Binary
B. Quasi Binary time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
- HDU 1236 排名(结构体+排序)
今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑 每题的分值,所以并不是最后的排名.给定录取分数线,请你写程序找出最后通过分数线的 考生,并将他们的成绩按降序打 ...
- 洛谷——P1154 奶牛分厩
P1154 奶牛分厩 题目描述 农夫约翰有N(1<=N<=5000)头奶牛,每头奶牛都有一个唯一的不同于其它奶牛的编号Si,所有的奶牛都睡在一个有K个厩的谷仓中,厩的编号为0到K-1.每头 ...
- 19、Django实战第19天:课程列表页
从今天开始,我们将完成"公开课"课程的相关功能..... 1.把course-list.html复制到templates目录下 2.这个页面的头部.底部与之前定义的base.htm ...
- bit & byte & B & KB & Kbps & KBps & ps
存储单位bit & byte & B & KB & Kbps & KBps & ps (bit,位:byte,字节:区别) Bit,位 :二进制数 ...
- [CF935F]Fafa and Array
法法round(雾 题意:给一个序列$a_{1\cdots n}$,定义$\begin{align*}f=\sum\limits_{i=1}^{n-1}\left|a_i-a_{i+1}\right| ...
- 【暴力】bzoj3713 [PA2014]Iloczyn
没什么好说的. #include<cstdio> using namespace std; typedef long long ll; ]; int main() { scanf(]=; ...
- Android开发工具
Android开发工具: AndroidDevTools: 收集整理Android开发所需的Android SDK.开发中用到的工具.Android开发教程.Android设计规范,免费的设计素材等. ...
- Intellij IDEA光标保持自动缩进,设置下次不放在行首
- CentOS 6.9系统时间和硬件时间设置(转)
总结一下hwclock,这个容易晕: 1)/etc/sysconfig/clock 文件,只对 hwclock 命令有效,且只在系统启动和关闭的时候才有用(修改了其中的 UTC=true 到 UTC= ...