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,就等于把每个通道颜色都减淡,最终变暗。
 

Cocos2d-js 3.0 颜色变换(调整sprite/图片的色调)的更多相关文章

  1. cocos2d js jsb XMLHttpRequest 中文乱码

    1.首先讲下怎样使用XMLHttpRequest 下面所说的是在cocos2d-x 2.2.2 或者 2.3 版本号中. 首先要明确cocos2d js事实上分两个版本号,一个是html5的版本号,另 ...

  2. cocos2d js ClippingNode 制作标题闪亮特效

    1.效果图: 之前在<Android 高仿 IOS7 IPhone 解锁 Slide To Unlock>中制作了文字上闪亮移动的效果,这次我们来看下怎样在cocos2d js 中做出类似 ...

  3. 开源HTML5游戏引擎Kiwi.js 1.0正式发布

    Kiwi.js是由GameLab开发的一款全新的开源HTML5 JavaScript游戏引擎.在经过一年多的开发和测试之后,终于在日前正式发布了Kiwi.js 1.0版本. 其创始人Dan Milwa ...

  4. 【JS】heatmap.js v1.0 到 v2.0,详细总结一下:)

    前段时间,项目要开发热力图插件,研究了heatmap.js,打算好好总结一下. 本文主要有以下几部分内容: 部分源码理解 如何迁移到v2.0 v2.0官方文档译文 关于heatmap.js介绍,请看这 ...

  5. swipe.js 2.0 轻量级框架实现mobile web 左右滑动

    属性总结笔记如下: <style> .swipe { overflow: hidden; //隐藏溢出 清楚浮动 visibility: hidden; //规定元素不可见 (可以设置,当 ...

  6. 【翻译】Ext JS 5.0.1 中的新功能

    原文:What's New in Ext JS 5.0.1 今天,我们很高兴的宣布Ext JS 5.0.1发布了!此维护版本基于Sencha社区的反馈做了一些改进.下面让我们来了解一下这些改变. 可访 ...

  7. JS实现随机颜色的3种方法与颜色格式的转化

    JS实现随机颜色的3种方法与颜色格式的转化   随机颜色和颜色格式是我们在开发中经常要用到的一个小功能,网上相关的资料也很多,想着有必要总结一下自己的经验.所以这篇文章主要介绍了JS实现随机颜色的3种 ...

  8. 窥探Vue.js 2.0 - Virtual DOM到底是个什么鬼?

    引言 你可能听说在Vue.js 2.0已经发布,并且在其中新添加如了一些新功能.其中一个功能就是"Virtual DOM". Virtual DOM是什么 在之前,React和Em ...

  9. 窥探Vue.js 2.0

    title: 窥探Vue.js2.0 date: 2016-09-27 10:22:34 tags: vue category: 技术总结 --- 窥探Vue.js2.0 令人兴奋的Vue.js 2. ...

随机推荐

  1. Material Designer的低版本兼容实现(三)——Color

    在Material Designer中,色彩再一次被摆到了重要的位置上.官方文档中竟然给出了500种配色方案进行选择.就是为了给不同的手机.电视.手表上带来一直的用户体验. 更多用于控制色彩的属性,可 ...

  2. 开源项目DataTimePicker实现时间和日期的选择

       这个开源项目是模仿Google官方的time选择器做的,是否漂亮.让我爱不释手,真心喜欢.很有幸和大家一起分享下,那么话不多说开始讲解. 开源项目地址:https://github.com/fl ...

  3. python3.7新增关键字:async、await;带来和kafka-python==1.4.2的兼容性问题

    python3.7新增关键字:async.await: kafka-python==1.4.2用到了关键字async,由此带来兼容性问题 解决方案: 升级kafka-python==1.4.4 使用p ...

  4. spring boot1.5以上版本@ConfigurationProperties取消location注解后的替代方案 cannot resolve method location

    问题 在spring boot(版本1.5.1.RELEASE)项目中,当准备映射自定义的配置文件属性到类中的时候,发现原本的@ConfigurationProperties注解已将location属 ...

  5. 怎么选择软件许可证,Apache, MIT, BSD, GPL, Mozilla, LGPL

  6. [leetcode]ZigZag Conversion @ Python

    原题地址:https://oj.leetcode.com/problems/zigzag-conversion/ 题意: The string "PAYPALISHIRING" i ...

  7. [leetcode]Sort Colors @ Python

    原题地址:https://oj.leetcode.com/problems/sort-colors/ 题意: Given an array with n objects colored red, wh ...

  8. Tensorflow 模型持久化saver及加载图结构

    主要内容: 1. 直接保存,加载模型; (可以指定加载,保存的var_list) 2. 加载,保存指定变量的模型 3. slim加载模型使用 4. 加载模型图结构和参数等 tensorflow 恢复部 ...

  9. 别再为了this发愁了:JS中的this机制

    题记:JavaScript中有很多令人困惑的地方,或者叫做机制.但是,就是这些东西让JavaScript显得那么美好而与众不同.比方说函数也是对象.闭包.原型链继承等等,而这其中就包括颇让人费解的th ...

  10. 大数据开发实战:Storm流计算开发

    Storm是一个分布式.高容错.高可靠性的实时计算系统,它对于实时计算的意义相当于Hadoop对于批处理的意义.Hadoop提供了Map和Reduce原语.同样,Storm也对数据的实时处理提供了简单 ...