Cocos2d-X中的ZORDER和Tag
来源:互联网 发布:网络投资平台 编辑:程序博客网 时间:2024/06/08 19:05
ZORDER:是描述渲染顺序的值,每个CCNode都有ZORDER,默认是0
ZORDER越大,越后面绘制
如果ZORDER相同,那么看arrival顺序,先加入的节点先绘制
ZORDER只在相同父节点的节点之间进行比较
先从一段简单的代码看起:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//在层上设置属性
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的值
将上面的代码中的
1
2
3
//创建精灵
CCSprite* sprite1 = CCSprite::create(
"CloseNormal.png"
);
addChild(sprite1);
改成
1
2
3
//创建精灵
CCSprite* sprite1 = CCSprite::create(
"CloseNormal.png"
);
addChild(sprite1,
1
);
执行结果:
方法2、通过使用setZOrder函数设置ZORDER的值
在代码中添加
1
2
//使用函数设置ZORDER
sprite1->setZOrder(
1
);
执行结果:
Tag, 是一个节点的身份证,方便通过getChildByTag来获取节对象
它的意义在于减少成员变量
Tag只在相同父节点的节点之间有效
Tag在相同父节点的儿子之间不能相同,Tag相同情况下,cocos不报错,getChildByTag可能会获取到不是你想要的CCNode
一般用枚举表示Tag以防止重复
TAG有时候用来当ID使用,尤其是当多个菜单项使用同一个响应函数时候
转自:Cocos2d-X中的ZORDER和Tag
0 0
- Cocos2d-X中的ZORDER和Tag
- Cocos2d-X中的ZORDER和Tag
- cocos2d-x 知识小结(1)zorder和tag
- cocos2d-x(6):渲染顺序ZORDER和Tag相关学习
- cocos2dx tag和zorder
- cocos2d-x中的adddChild函数中的zOrder参数理解和实际显示效果
- cocos2d-x中Zorder和VertexZ属性的区别
- cocos2d 中 zorder 和 setVertexZ 的区别
- Cocos2d-x游戏引擎开发[4]---Sprite以及zorder
- cocos2d-x 中的(#、##、...和__VA_ARGS__)
- 易错点--关于CCNode中的Zorder和VertexZ属性的区别
- 我的Cocos2d-x学习笔记(七)纹理缓存、帧缓存、精灵的创建、zOrder
- cocos2d-x中的CCDirector和CCLayer
- Cocos2d-x 中的Sleep 和USleep
- Cocos2d-X中的声音和音效
- cocos2d与cocos2d-X中的draw和update
- ZOrder
- cocos2d (ZORDER、setTag、单点触屏)
- ios7 新特性库
- js正则表达式
- EF CodeFirst 外键关联和独立关联
- StartServiceCtrlDispatcher
- windows下tomcat和java环境变量的配置
- Cocos2d-X中的ZORDER和Tag
- GNU C语言的 扩展(二)零长度数组&可变参数宏
- 关于tomcat 部署web应用,serverxml的设置。
- git reset 浅析
- JS设置cookie、读取cookie、删除cookie
- 【Unity3D】学习笔记(第5记) 2D游戏开发基本技巧之拾取道具
- ios的消息传递—— performSelector
- Cocos studio sample讲解 DemoShop商店界面
- C++友元函数与友元类的用法