实验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( / ); node->setPosition(Vec2(s.width/,s.height/)); auto spr = Sprite::create("a.png");
bomb1->addChild(spr); bomb1->setOpacity(/);//

那要整体改变一个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 / , s.height / ));
node->setOpacity(/);
}

setCascadeOpacityEnabled 这个函数里面调用了

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

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

cocos2dx ui显示机制的更多相关文章

  1. 2、COCOS2D-X内存管理机制

    在C++中.动态内存分配是一把双刃剑,一方面,直接訪问内存地址提高了应用程序的性能,与使用内存的灵活性.还有一方面.因为程序没有正确地分配与释放造成的比如野指针,反复释放,内存泄漏等问题又严重影响着应 ...

  2. Activity调用静态方法改变UI,使用Handler来改变UI显示

    本人菜鸟,请各位多多指点,不足之处,请斧正.没啥技术含量,就权当丰富下mono for android的小代码. Activity调用静态方法改变UI using System; using Andr ...

  3. QT显示机制(7篇相关文章)

    了解QT显示机制,最重要的就是要了解QT是如何管理窗体的显示区域的,这里有个重要的类:QRegion, 在QT中可以通过QRegion定义一个窗体的显示区域,也可以通过QRegion定义窗体的可修改区 ...

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

    在最初升级win10的时候就想到了这些问题,例如和各种软件的不兼容性.当然,事实上win10并没有想象的那么糟,作为一个windows user 来说,win10的确是很高大上的,无论是颜值或者是体验 ...

  5. 第六篇 ANDROID窗口系统机制之显示机制

    第六篇 ANDROID窗口系统机制之显示机制 ANDROID的显示系统是整个框架中最复杂的系统之一,涉及包括窗口管理服务.VIEW视图系统.SurfaceFlinger本地服务.硬件加速等.窗口管理服 ...

  6. Xamarin XAML语言教程将XAML设计的UI显示到界面

    Xamarin XAML语言教程将XAML设计的UI显示到界面 如果通过XAML将UI设计好以后,就可以将XAML中的内容显示给用户了,也就是显示到界面上.由于创建XAML文件方式的不同,所以将XAM ...

  7. 深入理解android的UI更新机制

    深入理解android的UI更新机制 由问题开始: 如何更新android UI? 可以通过如下方法: 在主线程里直接操作UI控件. handler.post(Runnable) runOnUiThr ...

  8. Cocos2dx&Lua - UI显示优化之怎样解决解析大量json文件

    GUIReader中有个widgetFromJsonFile的方法,此方法是用于解析json文件(cocostudio生成的UI的)并返回该文件的父节点(Widget),然后便于进一步的UI操作(如获 ...

  9. [cocos2dx UI] CCLabelAtlas 为什么不显示最后一个字

    CClabelAtlas优点,基本用法等我就不说了,这里说一个和美术配合时的一个坑!就是图片的最后一位怎么也不显示,如下图中的冒号不会显示 查了ASCII码表,这个冒号的值为58,就是在9(57)的后 ...

随机推荐

  1. HDU4112

    对于n*m*k的方块,用手掰成1**1的那么搜需要的步骤是固定的,为n*m*k-,如果用刀切,因为可以把多块叠在一起切,所以对于长度为n的,将他切成0,所需要的步骤数位k 对于n*m*k的方块,用手掰 ...

  2. Web前端学习笔记之前端跨域知识总结

    0x00 前言 相信每一个前端er对于跨域这两个字都不会陌生,在实际项目中应用也是比较多的.但跨域方法的多种多样实在让人目不暇接.老规矩,碰到这种情况,就只能自己总结一篇博客,作为记录. 0x01 什 ...

  3. 20145326 《Java程序设计》课程总结

    每周读书笔记链接汇总 20145326第1周学习总结 20145326第2周学习总结 20145326第3周学习总结 20145326第4周学习总结 20145326第5周学习总结 20145326第 ...

  4. (探讨贴)POJ 1463 树形DP解法的不正确性

    POJ1463是一个典型的树状DP题. 通常解法如下代码所示: using namespace std; ; ]; int pre[maxn]; int childcnt[maxn]; int n; ...

  5. [fastjson] - fastjson中 JSONObject 和 JSONArray

    /** * 对jsonObject对象进行key的获取 * @param jsonObject */ public ArrayList<String> jsonKeyRecursion(J ...

  6. Python学习札记(三十三) 面向对象编程 Object Oriented Program 4

    参考:继承和多态 NOTE 著名的开闭原则: 对扩展开放:允许新增Animal子类: 对修改封闭:不需要修改依赖Animal类型的Animal_func()等函数. 1.eg. #!/usr/bin/ ...

  7. python 输出环境变量

    import os # Access all environment variables print('*---------------ENVIRON-------------------*') pr ...

  8. undefined 与 null

    typeof null  -   'object typeof undefined   -  'undefined' Boolean(null)    -  false Boolean(undefin ...

  9. 【源码学习之spark core 1.6.1 standalone模式下的作业提交】

    说明:个人原创,转载请说明出处 http://www.cnblogs.com/piaolingzxh/p/5656876.html 未完待续

  10. Spring IOC 源码简单分析 01 - BeanFactory

    ### 准备 ## 目标 了解 Spring IOC 的基础流程 ## 相关资源 Offical Doc:http://docs.spring.io/spring/docs/4.3.9.RELEASE ...