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: 下面是该游戏的项目地址,各位想参考源代码的同学可以到 ...
随机推荐
- OpenCV学习(3)--Mat矩阵的操作
CvMat的矩阵结构 typedef struct CvMat { //矩阵中元素的类型 int type; //行数据长度 int step; /* for internal use only */ ...
- HTML5 Placeholder实现input背景文字提示效果
这篇文章我们来看看什么是input输入框背景文字提示效果,如下图所示: 这种效果现在网上非常的普遍流行,但大部分是使用JavaScript实现的.但HTML5给我们提供了新的纯HTML的实现方式,不需 ...
- Android 获取有规律资源Id解决方案
在多个有规律的资源ID获取的时候,可以使用getIdentifier方法来获取,来获取. 用到场景:工具类打成.jar包的时候,有时候会需要引用到res中的资源,这时候不能将资源一起打包,只能通过反射 ...
- 什么是Web前端,Web前端是做什么的?
什么是Web前端 Web前端,顾名思义是来做Web的前端的.而Web前端开发应该就是来开发基于Web前端的相关应用的或者说是来开发前端的.那么,前端又是什么呢?我们这里所说的前端泛指Web前端,也就是 ...
- QT5的中文路径和目录问题小记
今天重新整理了磁盘文件后 使用qt发现编译不过 提示找不到工程的pro文件 原因:我把原来的qt工作目录删掉了 导致qt默认找“我的文档” 作为工作目录 而中文路径导致了这个问题,MARK之 /// ...
- delphi 实现vip126发邮件
本例是 TSimpleThread , TSimpleList, IdhttpEx 网页模拟(POST)的综合运用. Demo只写了发送,但亦可收取,详见源码. (此源码写于2年前,那时还写得不好,请 ...
- git ssh认证
一般新手用git时,使用HTTPS都需要输入用户名和密码,这是一个很低效的开发过程.(虽然有时可以让开发人员减少push的次数).github提供了几种连接方式,其中以https:开头的代表https ...
- 继承ViewGroup研究(汇总) 一、二、三
转载过来:为一.二.三版本. 仅供参考: 继承ViewGroup研究(1) --简介和一个小Demo 又翻开一个新篇章了,哈哈,上一回学习的是继承View,关于继承View个人感觉不是那么完美,做技术 ...
- Oracle转移user表空间位置
1:登录sqlplus sqlplus /nolog conn sys/bcc@gis as sysdba 2:修改表空间位offline alter tablespace users offline ...
- uva 12171 hdu 1771 Sculpture
//这题从十一点开始写了四十分钟 然后查错一小时+ 要吐了 这题题意是给很多矩形的左下角(x,y,z最小的那个角)和三边的长(不是x,y,z最大的那个角T-T),为组成图形的面积与表面积(包在内部的之 ...