]cocos2d-x里子Sprite随父Sprite透明度变化
来源:互联网 发布:自动刷屏软件 编辑:程序博客网 时间:2024/04/30 21:21
到这个问题,可能很多人早就知道了,这里就当做个记录好了。
_displayedOpacity =_realOpacity = opacity; { CCRGBAProtocol* pParent =dynamic_cast(m_pParent); if (pParent &&pParent->isCascadeOpacityEnabled()) { parentOpacity = pParent->getDisplayedOpacity(); } this->updateDisplayedOpacity(parentOpacity);
if(_cascadeOpacityEnabled) { CCObject* pObj; CCARRAY_FOREACH(m_pChildren, pObj) { CCRGBAProtocol* item = dynamic_cast(pObj); if(item) { item->updateDisplayedOpacity(_displayedOpacity); } } }
之前用老版本用久了,貌似没有发现子Sprite会随父Sprite的透明设置Opacity变化而变化。所以之前有Sprite嵌套的情况下处理的办法都是在每帧更新的时候去手动加上设置Opacity的代码。
比如
update()
{
this->setOpacity(getParent()->getOpacity());
}
最近在新版本cocos2d-x代码里偶然发现这个方法(估计2.1版本加上去的吧,具体不清楚),直接设置就OK了。
CCSprite::setCascadeOpacityEnabled
翻看源码,这两个函数彻底说明了它的作用。
voidCCNodeRGBA::setOpacity(GLubyte opacity)
{
if(_cascadeOpacityEnabled)
GLubyteparentOpacity = 255;
}
}
voidCCNodeRGBA::updateDisplayedOpacity(GLubyte parentOpacity)
{
_displayedOpacity = _realOpacity * parentOpacity/255.0;
}
代码中,当setCascadeOpacityEnabled为true时, 子Sprite设置Opacity的时候会参考父Sprite的Opacity值做处理;而设置父Sprite的Opacity值时,也同时会更新子Sprite的Opacity显示。起到了透明设置的传递作用。所以之前的每帧更新的代码就可以删掉了,省不少事。
同理,还有个函数setCascadeColorEnabled相当于传递了颜色设置的作用,这里就不做更多说明了。
0 0
- ]cocos2d-x里子Sprite随父Sprite透明度变化
- Cocos2d-x Sprite 执行 CCFade~ 这类透明度变化动作的一些问题
- Cocos2d-x Sprite 执行 CCFade~ 这类透明度变化动作的一些问题
- Cocos2d-x Sprite 执行 CCFade~ 这类透明度变化动作的一些有关问题
- Cocos2d-x Sprite 执行 CCFade~ 这类透明度变化动作的一些问题
- Cocos2d-x Sprite 执行 CCFade~ 这类透明度变化动作的一些问题
- Cocos2d-x Sprite 执行 CCFade~ 这类透明度变化动作的一些有关问题
- cocos2d-x 精灵 Sprite
- Cocos2d-x Sprite笔记
- cocos2d-x Sprite方法
- cocos2d-x 3.0sprite轮换
- cocos2d-x判断sprite点击
- cocos2d-x sprite setcolor 无效
- cocos2d-x判断sprite点击
- cocos2d-x 改变sprite图片
- cocos2d-x-lua:API-sprite
- cocos2d-x开发笔记:获取Sprite上某一个点的透明度,制作不规则按钮
- cocos2d-x开发笔记:获取Sprite上某一个点的透明度,制作不规则按钮
- 从远程服务器向本地系统复制文件(centos之间)
- 【BZOJ3747】[POI2015]Kinoman【线段树】
- 我的c\c++之旅(二)——归并排序
- [计网学习笔记(2)] Web应用
- 设计模式读书笔记----享元模式
- ]cocos2d-x里子Sprite随父Sprite透明度变化
- HTML5 -- 使用css3实现简单的响应式布局
- ERP小型集团化——重点功能及二次开发配置——清单查找/树形查找
- getchar的用法
- 腾讯面试题(奶牛产子问题)
- 金智教育校园招聘笔试
- android 获取屏幕高度和宽度 的方法
- 设计模式读书笔记-----代理模式
- linux系统644、755、777权限详解