cocos2dx ui显示机制

实验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);
        }
    }
}
时间: 2024-10-28 00:49:04

cocos2dx ui显示机制的相关文章

Android应用Activity、Dialog、PopWindow窗口显示机制及源码分析

[工匠若水 http://blog.csdn.net/yanbober 转载烦请注明出处,尊重劳动成果] 1 背景 之所以写这一篇博客的原因是因为之前有写过一篇<Android应用setContentView与LayoutInflater加载解析机制源码分析>,然后有人在文章下面评论和微博私信中问我关于Android应用Dialog.PopWindow.Toast加载显示机制是咋回事,所以我就写一篇文章来分析分析吧(本文以Android5.1.1 (API 22)源码为基础分析),以便大家在应

2、COCOS2D-X内存管理机制

在C++中,动态内存分配是一把双刃剑,一方面,直接访问内存地址提高了应用程序的性能,与使用内存的灵活性:另一方面,由于程序没有正确地分配与释放造成的例如野指针,重复释放,内存泄漏等问题又严重影响着应用程序的稳定性. 人们尝试着不同的方案去避免这个问题,比较常用的如智能指针,自动垃圾回收等,这些要么影响了应用程序的性能,要么仍然需要依赖于开发者注意一些规则,要么给开发者带来了另外一些很丑陋的用法(实际上笔者很不喜欢智能指针).因此,优秀的C++内存管理方案需要兼顾性能,易用性,所以到目前为止C++

ListView+Adapter适配器的使用与Listview常见的UI显示问题

一.ListView的事件: 1.setOnItemClickListener()点击事件 listview.setOnItemClickListener(new OnItemClickListener() {             @Override            public void onItemClick(AdapterView<?> parent, View view,                    int position, long id) {         

Win10系统下软件UI显示不完整解决方案

在最初升级win10的时候就想到了这些问题,例如和各种软件的不兼容性.当然,事实上win10并没有想象的那么糟,作为一个windows user 来说,win10的确是很高大上的,无论是颜值或者是体验,都让人爱不释手. 下面我就说一下最近和win10的那些事之一:在win10系统下安装了IBM Cognos Transform后,Transform的一些设计界面不能完全显示,而后我们就是要想办法来解决这个问题. 一:基本配置情况和遇到的状况如下所示: 1.1:window系统 1.2:cogno

帝国塔防2充值界面闪退BUG修复总结(cocos2dx内存管理机制)

游戏充值界面老是闪断,debug调试断点总是断在比较深的位置,也看不出哪里出错. 后来有一次断点断在了程序创建一个提示图片的地方,于是检查代码发现了问题. 修改之前的错误代码: 1.创建提示的代码: m_loading = new NetLoading(this, callfunc_selector(IapShopLayer::downingUpdate)); // m_loading 引用计数为1 m_loading->setPosition(ccp(1139/2.0f, 640.0f/2.0

cocos2d-x ui编辑器导出文件的使用

设置地方 1.在项目解决方案上右键,添加现有项目,找到Cocostudio,GUI库以及Extensions库. 2.添加项目的附加包含目录.右键项目->property->configuration properties->c/c++->General->Additional Include Directories,添加$(EngineRoot)cocos\editor-support,$(EngineRoot)cocos,$(EngineRoot). 3.引用ui库.右键

高通1.77”彩屏对讲机UI显示方案

目前市场上面的数字对讲机大多数采用液晶屏来实现人机交互及短信传递,高通科技进一步优化设计全套对讲机汉显解决方案,在原有条件下给对讲机汉字显示提供了多款字库芯片,进一步完善了中文菜单显示,多国语言菜单显示和短信姓名编辑等功能,为对讲机客户提供高品质. 高通自主研发的彩屏字库使打印显示更加专业.规范且效果丰富多样化,我们为客户带来的核心优势包括: 高通点阵字库芯片: 方案一:对讲机UI显示 - 主界面: 对讲机UI显示 - 操作界面: 对讲机UI显示 - 选择界面: 方案二:对讲机UI显示 - 管理

高通彩屏电子烟UI显示方案 — 支持多国语言、点阵字库

高通240x240彩屏屏电子烟UI显示方案针对电子烟人机交互.健康管理等特点,依托三十多年的信息技术积累,数百例文字应用案例,除了常规显示近3万个简繁体汉字及180多国语言字库,更将动态图片嫁接入字库芯片中,增加电子烟的交互性.除了常规电量.电压.功率.发热丝电阻值等显示.特别对于智能电子烟健康控烟功能,可设定每天吸烟次数,并设置提醒数值,帮助想要戒烟的烟民们,通过逐步减少每日抽烟次数的方式,日渐摆脱烟瘾,成功戒烟. 字库芯片优势: 电子烟 -- 240x240界面UI显示 公司介绍:深圳高通半

高通智能手环0.96寸OLED(128X64)UI显示套件

随着穿戴市场今年的快速发展,智能手环的产品类型.功能和品质等爆发式地提升和增强,而智能手环的UI界面作为产品体验最直观的部分,将带给消费者最直接的印象,故UI的品质对此类消费类产品相当重要. 本期产品为高通科技第一款UI套件(GTL-12864O096K16D),为一款专用型0.96寸OLED LCD,支持nrf51822系列蓝牙SOC芯片,包含专业点阵字库.手环字库.手表字库.UI元素.交互程序.主控驱动等.用户只需要调用数据接口,就可以轻松实现完整的UI显示和交互.此产品帮助客户极大缩短开发