cocos2dx tag和zorder
来源:互联网 发布:四川省卫生数据采集 编辑:程序博客网 时间:2024/06/15 21:27
当一个渲染对象加入到两外一个渲染对象中时,可以有两个可选参数,一个时tag,一个是order
virtual void addChild(CCNode * child);
virtual void addChild(CCNode * child, int zOrder);
virtual void addChild(CCNode* child, int zOrder, int tag);
当使用addChild,不带zOrder和tag时,那么使用子对象保存的zorder和tag,而这两个值在对象创建时,
zOrder是0,tag是-1
tag用于标记这个渲染对象,就像每个人都有身份证一样。
如果我们在某个函数中把对象加入到父节点,而在另外一个函数中又要用到这个节点,我们必须在这两个函数外定义该节点,这样代码显得很难看。代码如下:
void MyScene::init()
{
CCSprite* sp = CCSprite::create();
addChild(sp);
}
void MyScene::handle()
{
// 怎么得到sp指针呢,它再另外一个函数中创建的
// c++中至少有两种办法,第一成员变量,定义全局变量,但是这种变量很多,写起来很辛苦,并且代码会很难看
}
///////////////////////////改进后如下:////////////////
void MyScene::init()
{
CCSprite* sp = CCSprite::create();
addChild(sp, 0, 30);
}
void MyScene::handle()
{
CCSprite* sp = (CCSprite*)getChildByTag(30);
// 对sp做别的处理。。。。
}
///////////////////嗯,人的身份证是不能重复的,但是tag不小心重复了怎么办?
cocos2dx不负责管理tag的唯一性,你得自己小心,如果一旦重复了,会导致你获取child得时候,可能不正确。
////////tag和身份证不一样得是,tag是能修改的
sp->setTag(...)可以修改,所以就算tag重复了,也可以修改的
-----------------------------下面说zOrder
ZOrder是子对象的Z轴方向的值,负责管理对象的覆盖关系。
ZOrder越大,那么越靠近用户。
如果ZOrder相同,那就看加入顺序,越后面加入的对象,越靠近用户。
- cocos2dx tag和zorder
- Cocos2d-X中的ZORDER和Tag
- Cocos2d-X中的ZORDER和Tag
- cocos2d-x 知识小结(1)zorder和tag
- cocos2d-x(6):渲染顺序ZORDER和Tag相关学习
- Cocos2dx的ZOrder见解
- ZOrder
- cocos2d 中 zorder 和 setVertexZ 的区别
- 易错点--关于CCNode中的Zorder和VertexZ属性的区别
- cocos2d-x中Zorder和VertexZ属性的区别
- ZOrder方法
- cocos2d-x中的adddChild函数中的zOrder参数理解和实际显示效果
- Jsp之Tag文件和Tag标记
- 关于Tag和Tags
- untag和tag端口
- tag和branch,trunk
- 添加tag和branch
- COCOS2D-X cannot find module with tag cocos2dx
- 安装glassfish
- C# WinForm控件之Dock顺序调整
- 每日一个C++小程序(九)--取不同球的取法
- set命令笔记
- JDBC(Java数据库连接)笔记一二
- cocos2dx tag和zorder
- Java中如何实现单个线程范围内的数据共享
- 自己动手写操作系统——linux环境配置
- 堆栈溢出与内存泄露问题
- python 第6章抽象
- JDBC驱动问题分析一例
- 网站图片怎么优化搜索排名
- Sort Algorithm 总结
- Haproxy安装和配置