cocos2dx tag和zorder
当一个渲染对象加入到两外一个渲染对象中时,可以有两个可选参数,一个时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
ZORDER:是描写叙述渲染顺序的值,每一个CCNode都有ZORDER,默认是0 ZORDER越大,越后面绘制 假设ZORDER同样.那么看arrival顺序.先增加的节点先绘制 ZORDER仅仅在 ...
- cocos2d-x 知识小结(1)zorder和tag
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255) ...
- cocos2dx在Eclipse下编译报错:Cannot find module with tag 'CocosDenshion/android' in import path
在Eclipse下编译cocos2dx项目,报错如下: Android NDK: jni/Android.mk: Cannot find module with tag 'CocosDenshion/ ...
- cocos2dx深度检测与Zorder
cocos2dx里面有两个渲染队列,RenderQueue和TransparentRenderQueue.我们可以从Renderer::render()的代码看到: void Renderer::re ...
- Cocos2d-x 2.2.3 使用NDK配置安卓编译环境问题之 Cannot find module with tag 'CocosDenshion/android' in import path
1.当做安卓移植的时候遇到例如以下问题: Android NDK: jni/Android.mk: Cannot find module with tag 'CocosDenshion/android ...
- cocos2dx 菜单按钮回调方法传参 tag传参
.h文件 void menuCallBack(CCObject* pSender); .cpp CCMenuItemSprite* item = CCMenuItemSprite::create( m ...
- Cocos2d-x 如何输出 Android用电话 腰带Tag的Log刊物
于Cocos2d-x根据代码 #if(CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) #define LOGAnroid( ...) #else if (CC_TAR ...
- Cocos2dx Android环境编译出错:jni/Android.mk: Cannot find module with tag 'scripting/lua-bindings' in import path
解决方案为: 在项目proj.android\jni\Android.mk(D:\my_lua_test2\MyluaTest\frameworks\runtime-src\proj.android\ ...
- 【深入Cocos2d-x】使用MVC架构搭建游戏Four
喜欢Four这个项目,就赶快在GitHub上Star这个项目吧! 喜欢我的文章,来微博关注我吧:王选易在学C艹 点我下载 项目起源 项目Logo: 下面是该游戏的项目地址,各位想参考源代码的同学可以到 ...
随机推荐
- Gridlayout动态添加
//类似数组[行, 列] //表示起始位置为0,占据2行 GridLayout.Spec rowSpec=GridLayout.spec(0, 2, GridLayout.UNDEFINED); // ...
- 什么是Web前端,Web前端是做什么的?
什么是Web前端 Web前端,顾名思义是来做Web的前端的.而Web前端开发应该就是来开发基于Web前端的相关应用的或者说是来开发前端的.那么,前端又是什么呢?我们这里所说的前端泛指Web前端,也就是 ...
- Tex介绍
TeX, LaTeX, XeTeX, PdfTeX等等 TeX 是一种宏语言.就像别的语言有库一样,TeX 语言有宏的集合.这些宏,就是用这个语言写出来的东西,供大家共用的.TeX 有个最基本的宏集合 ...
- 使用Unity开发HoloLens应用
https://developer.microsoft.com/en-us/windows/holographic/install_the_tools 导读:开发者们在陆续收到HoloLens开发者版 ...
- 正版Win7永不崩溃的秘密 解密系统备份!
备份正版Win7系统 打开Win7系统的控制面板,进入“备份和还原”选项,即可要使用正版Win7系统的备份还原功能. 进入Win7“备份和还原”功能 点击“设置备份”,即可启动Windows 备份程序 ...
- Office 2010 SP2简体中文正式版下载
此次发布的SP2包含最新的更新,提高安全性.性能和稳定性,此外SP2还是之前发布的所有更新.累积性更新的汇总.SP2还改善了Office 2010与IE10.Windows 8.Windows Ser ...
- docker 容器开启ssh服务
ssh服务安装 安装ssh服务 #yum install openssh-server -y 安装passwd(修改密码需要) #yum install passwd -y 修改sshd_config ...
- mysql timestamp 值不合法问题
Create Table: CREATE TABLE `RecruitmentDesc` ( `sn` int(11) NOT NULL AUTO_INCREMENT COMMENT '编号(自增字段 ...
- md笔记——HTTP知识
HTTP权威指南 ******** 第一部分:HTTP:Web 的基础 第一章:HTTP概述 MIME 因特网上有数千种不同的数据类型,HTTP 仔细地给每种要通过 Web 传输的对象都打上了名为 M ...
- 从零开始nodejs系列文章
http://blog.fens.me/series-nodejs/ 从基础的node安装到npm配置,从express到jade,还有mongoDB.是一个很好的node教程