Cocos2d-js 3.0 颜色变换(调整sprite/图片的色调)
来源:互联网 发布:西北知行学院官网 编辑:程序博客网 时间:2024/06/14 16:29
Flash在滤镜方面做得比较成熟,starling也有很多现成的办法。
但Cocos2D这里就显得比较单薄,百度/谷歌很少相关资料。
后续如果有时间,再慢慢整理各种滤镜效果。
这里先介绍一下颜色变换的功能,这个是cocos2d内置的,用起来比较方便,只需要知道具体做了什么即可。
例如要把一个按钮变暗,也许一般做法是换一个图片,但其实也可以直接修改颜色值。
有三个方法可以做到:
this.color = cc.color(150,150,150); this.setColor(cc.color(150,150,150)) var action = cc.tintTo(1, 150,150,150); this.runAction(action);
另外还有tintBy的action。
这里rgb设置之后,是什么意思呢?具体做了什么运算呢?
cocos2d最大的好处就是开源,那我们通过看html5版本的代码,就可以略知一二了。
setColor: function (color) { var locDisplayedColor = this._displayedColor, locRealColor = this._realColor; locDisplayedColor.r = locRealColor.r = color.r; locDisplayedColor.g = locRealColor.g = color.g; locDisplayedColor.b = locRealColor.b = color.b; var parentColor, locParent = this._parent; if (locParent && locParent.cascadeColor) parentColor = locParent.getDisplayedColor(); else parentColor = cc.color.WHITE; this.updateDisplayedColor(parentColor); /*if (color.a !== undefined && !color.a_undefined) { //setColor doesn't support changing opacity, please use setOpacity this.setOpacity(color.a); }*/ }, /** * Update the displayed color of Node * @function * @param {cc.Color} parentColor */ updateDisplayedColor: function (parentColor) { var locDispColor = this._displayedColor, locRealColor = this._realColor; locDispColor.r = 0 | (locRealColor.r * parentColor.r / 255.0); locDispColor.g = 0 | (locRealColor.g * parentColor.g / 255.0); locDispColor.b = 0 | (locRealColor.b * parentColor.b / 255.0); if (this._cascadeColorEnabled) { var selChildren = this._children; for (var i = 0; i < selChildren.length; i++) { var item = selChildren[i]; if (item) item.updateDisplayedColor(locDispColor); } } },
从源代码中抠出这样的一段,大概可以看出,新颜色值和原颜色做了一个multiply的操作,也就是乘法。具体multiply是什么,可以查查wikipedia。
那么rgb都设置150,就等于把每个通道颜色都减淡,最终变暗。
源引:http://www.cnblogs.com/kenkofox/p/3988857.html
0 0
- Cocos2d-js 3.0 颜色变换(调整sprite/图片的色调)
- Cocos2d-js 3.0 颜色变换(调整sprite/图片的色调)
- Cocos2d-js 3.0 颜色变换(调整sprite/图片的色调)
- iOS 获取图片的主体颜色(主色调)
- JS图片的变换
- 调整偏暖色调(一种比较干净、透明的色调)
- css sprite 调整大张图片中小图标的大小
- 初学颜色矩阵(修改图像的色调,饱和度,亮度)
- cocos2d-x 改变sprite图片
- cocos2d-x_lua改变Sprite图片
- hover 背景颜色或者图片的平滑变换(transition)
- Cocos2d-JS Sprite精灵类
- cocos2d js v3.10 sprite点击事件的区域问题
- Cocos2d-js 学习(二): cc.Sprite 简单API记录
- 把图片变换颜色!
- 调整图片颜色
- 通道和色彩调整——冷色调图片
- 颜色的三要素:色调,饱和度,和亮度。
- 递归查找目录下的图片并加水印
- window7下配置httpd 共享目录服务
- Linux 下 USB-serial 端口的使用
- 【算法】单词翻转
- 混淆问题
- Cocos2d-js 3.0 颜色变换(调整sprite/图片的色调)
- 国产安卓手机让人反感的营销模式
- 编程技巧
- HDU1213 How Many Tables 【并查集】
- 经理人都必须问的两个问题
- Android Studio导入Project的方法
- Service 与BroadcastReceiver
- linux中的declare命令-声明变量类型
- leetcode 日经贴,Cpp code -Recover Binary Search Tree