博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cocos2dx ui显示机制
阅读量:5833 次
发布时间:2019-06-18

本文共 1844 字,大约阅读时间需要 6 分钟。

实验1

1,a.addChild(b); a的宽高没变,还是自己的宽高。 层级添加  不会改变原层大小。 

2.node.addChild(sprite);node的宽和高也没变 感觉2dx的显示不是树形结构。

然后改变node的透明度也不管用,node不是个显示类,感觉唯一的作用就是操作很多个sprite。一起改变位置

//sprite包含情况void HelloWorld::testSpriteAdd(){    auto sprite1 = Sprite::create("Images/CyanSquare.png");    sprite1->setPosition(160, 240);        log("sprite1 w,h %f %f",sprite1->getContentSize().width, sprite1->getContentSize().height);    auto node = Node::create();    node->addChild(sprite1);   node->setOpacity(255 / 2); addChild(node, 0, 100); log("node w,h %f %f", node->getContentSize().width, node->getContentSize().height);//0,0  }

 实验2

感觉2dx中没有父改变,所有的子都改变的机制,只是单单改变你调用的那一个对象,下面的代码只有bomb1改变了透明度,他的子spr并没有改变

auto s = Director::getInstance()->getWinSize();    Node* node = Node::create();    Sprite* bomb1 = Sprite::create("bg.png");    node->addChild(bomb1);    this->addChild(node);    node->setOpacity(255 / 2);    node->setPosition(Vec2(s.width/2,s.height/2));    auto spr = Sprite::create("a.png");    bomb1->addChild(spr);    bomb1->setOpacity(255/3);//

 那要整体改变一个node的透明读,然后他所有的子的透明度都变化应该怎么做呢?

void HelloWorld::testSetOpacity(){    auto s = Director::getInstance()->getWinSize();    Node* node = Node::create();    node->setCascadeOpacityEnabled(true);    Sprite* bomb1 = Sprite::create("bg.png");    node->addChild(bomb1);        //auto spr = Sprite::create("a.png");    //bomb1->addChild(spr);    this->addChild(node);    node->setPosition(Vec2(s.width / 2, s.height / 2));    node->setOpacity(255/3);}

setCascadeOpacityEnabled 这个函数里面调用了

updateDisplayedOpacity 这个方法只是遍历了第一层孩子,没有检测孩子的孩子

void Node::updateDisplayedOpacity(GLubyte parentOpacity){	_displayedOpacity = _realOpacity * parentOpacity/255.0;    updateColor();        if (_cascadeOpacityEnabled)    {        for(auto child : _children){            child->updateDisplayedOpacity(_displayedOpacity);        }    }}
 

转载地址:http://jkucx.baihongyu.com/

你可能感兴趣的文章
Windows Azure Virtual Network (5) 设置Azure Virtual Machine固定Private IP
查看>>
Game Loop Tutorial
查看>>
Android开发之旅:应用程序基础及组件(续)
查看>>
jQuery validate API
查看>>
基于机器学习的web异常检测——基于HMM的状态序列建模,将原始数据转化为状态机表示,然后求解概率判断异常与否...
查看>>
让SharePoint站点输出详细错误信息[转]
查看>>
Spring REST
查看>>
在Linux中打印函数调用堆栈【原创】
查看>>
你可能不知道的陷阱:C#委托和事件的困惑
查看>>
关于MyBatis的工作流程和与JDBC的比较与Hibernate的比较
查看>>
ASP.NET MVC5+EF6+EasyUI 后台管理系统(83)-Easyui Datagrid 行内编辑扩展
查看>>
阿里云全面支持SMB协议服务,为数据访问赋能
查看>>
Git学习系列之Git和TortoiseGit的区别
查看>>
Java之正则表达式来判断字符串中是否包含字母
查看>>
Jquery基础学习笔记(1)
查看>>
V$*视图和dba_*视图的区别
查看>>
定义serialVersionUID的作用与意义整理
查看>>
Android 设置EditText光标位置(转)
查看>>
Spring 如何读取properties文件内容
查看>>
PostreSQL崩溃试验全记录
查看>>