Cocos2d-X中的ZORDER和Tag
ZORDER:是描写叙述渲染顺序的值,每一个CCNode都有ZORDER,默认是0
ZORDER越大,越后面绘制
假设ZORDER同样。那么看arrival顺序。先增加的节点先绘制
ZORDER仅仅在同样父节点的节点之间进行比較
先从一段简单的代码看起:
//在层上设置属性
bool Zorder::init()
{
//初始化父类层
CCLayer::init(); //得到窗体的尺寸
CCSize winSize = CCDirector::sharedDirector()->getWinSize(); //创建精灵
CCSprite* sprite1 = CCSprite::create("CloseNormal.png");
addChild(sprite1); //设置精灵的位置
sprite1->setPosition(ccp(winSize.width/2, winSize.height/2)); CCSprite* sprite2 = CCSprite::create("HelloWorld.png");
addChild(sprite2); //设置精灵的位置
sprite2->setPosition(ccp(winSize.width/2, winSize.height/2)); return true;
}
上面的代码我是再熟悉只是了,上面的代码实现了。在层中创建了两个精灵。并且两个精灵的位置一样,那么在程序中就会出现这样一个问题。究竟哪个精灵先显示呢?
为了解决问题,先看一下上面代码的渲染模型
依据上面的模型可知Layer是CCNode,Sprite1和Sprite2为CCNode的两个子节点,从而可知Sprite1和Sprite2的ZORDER都为0,而后加入的会后绘制。所以后显示后面的精灵
运行结果:
改动ZORDER的值:
方法1、通过改动addChild函数的第二个參数实现改动ZORDER的值
将上面的代码中的
//创建精灵
CCSprite* sprite1 = CCSprite::create("CloseNormal.png");
addChild(sprite1);
改成
//创建精灵
CCSprite* sprite1 = CCSprite::create("CloseNormal.png");
addChild(sprite1, 1);
运行结果:
方法2、通过使用setZOrder函数设置ZORDER的值
在代码中加入
//使用函数设置ZORDER
sprite1->setZOrder(1);
运行结果:
Tag, 是一个节点的身份证。方便通过getChildByTag来获取节对象
它的意义在于降低成员变量
Tag仅仅在同样父节点的节点之间有效
Tag在同样父节点的儿子之间不能同样。Tag同样情况下。cocos不报错,getChildByTag可能会获取到不是你想要的CCNode
一般用枚举表示Tag以防止反复
TAG有时候用来当ID使用。尤其是当多个菜单项使用同一个响应函数时候
Cocos2d-X中的ZORDER和Tag的更多相关文章
- iOS开发UI篇—在UIImageView中添加按钮以及Tag的参数说明
ios开发UI篇—在ImageView中添加按钮以及Tag的参数说明 一.tag参数 一个视图通常都只有一个父视图,多个子视图,在开发中可以通过使用子视图的tag来取出对应的子视图.方法为Viewwi ...
- ios开发UI篇—在ImageView中添加按钮以及Tag的参数说明
ios开发UI篇—在ImageView中添加按钮以及Tag的参数说明 一.tag参数 一个视图通常都只有一个父视图,多个子视图,在开发中可以通过使用子视图的tag来取出对应的子视图.方法为Viewwi ...
- 如何在cocos2d项目中enable ARC
如何在cocos2d项目中enable ARC 基本思想就是不支持ARC的代码用和支持ARC的分开,通过xcode中设置编译选项,让支持和不支持ARC的代码共存. cocos2d是ios app开发中 ...
- 如何在Cocos2D游戏中实现A*寻路算法(六)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- 如何在Cocos2D游戏中实现A*寻路算法(一)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- golang中的struct标签tag
这个以前用beego时涉及过,时间久了,就忘了. 现在k8s里的controller,一样用了这个语法, 再拾起来吧. http://www.01happy.com/golang-struct-tag ...
- cocos2d-x 知识小结(1)zorder和tag
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255) ...
- SVN中的Trunk、Tag、Brance的用法
在SVN中Branch/tag在一个功能选项中,在使用中也往往产生混淆.在实现上,branch和tag,对于svn都是使用copy实现的,所以他们在默认的权限上和一般的目录没有区别.至于何时用tag, ...
- idea中git标签(tag)的创建与使用
1.什么是标签 通常,发布一个版本时,会在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本.将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来. 所以,标签也是 ...
随机推荐
- Codeforces Beta Round #2 B. The least round way dp
B. The least round way 题目连接: http://www.codeforces.com/contest/2/problem/B Description There is a sq ...
- Codeforces Round #345 (Div. 2) D. Image Preview 暴力 二分
D. Image Preview 题目连接: http://www.codeforces.com/contest/651/problem/D Description Vasya's telephone ...
- GMT-CMSP系统维护步骤整理
一.关闭前端各服务1.北京代理,韩国代理节点nginx/etc/init.d/nginx stop2.关闭WEB1,WEB2 NGINX和PHPpkill nginx && pkill ...
- delphi AlphaControls
http://blog.csdn.net/akof1314/article/details/7076804
- [Android实例] 推荐给你们一个好用的ListView、RecyclerView适配器
https://github.com/vihuela/RecyclerViewHelpper 如果用过RecyclerView的人都知道,高度不会包裹,然后写法好像也不是很简洁,甚至点击事件不好设 置 ...
- oracle 察看用户是否被锁,解锁以及改密码
以管理员身份登陆 察看用户状态(是否被锁) select * from dba_users where username='user1' 解锁 ALTER USER user1 ACCOUNT UN ...
- CSS -- 绝对相对定位
relative相对于自己原来的位置进行相对定位absolute相对于最近的父级元素进行定位fixed始终相对于浏览器窗口进行对位 顺便说一下,fixed就是特殊的absolute.
- 深入C(关键字)
C语言标准定义的32个关键字 关键字 意 义 auto 声明自动变量,缺省时编译器一般默认为auto int 声明整型变量 double 声明双精度变量 long 声明长整型变量 char 声明字符型 ...
- iOS:开发常用GitHub开源项目(持续更新)
IOS开发常用GitHub开源项目(持续更新) 数据类 开源库 作者 简介 AFNetworking Mattt 网络请求库 ASIHTTPRequest pokeb 网络请求库 Alamofire ...
- Python和Flask真强大:不能错过的15篇技术热文(转载)
Python和Flask真强大:不能错过的15篇技术热文 本文精选了 Python开发者 11月份的15篇 Python 热文.其中有基础知识,机器学习,爬虫项目实战等. 注:以下文章,点击标题即可阅 ...