码迷,mamicode.com
首页 > 其他好文 > 详细

ActionScript3游戏中的图像编程(连载十三)

时间:2014-08-03 17:47:55      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   for   2014   问题   

1.2.9 用ColorTransform实现反色效果

      本节的最后,我给大家来一个稍稍有点意思的效果——反色。这种颠覆性的变换,线性的ColorTransform也能做到?答案是肯定的!所谓的反色,就是白变黑,黑变白,浅变深,深变浅,它的计算公式也非常简单,用100%减去原值就能得到结果色。即

1 dst = 255 – src;

      套到ColorTransform的计算公式中,就有:

1 red(dst) = red(src) * (-1) + 2552 green(dst) = green(src) * (-1) + 255 
3 blue(dst) = blue(src) * (-1) + 255

      换而言之,只要将offset都设为255,multiplier都设成-1即可(可能有的童鞋还没想过将multiplier设置为负数吧)。

1 _myColorTransform.redMultiplier = -1;
2 _myColorTransform.greenMultiplier =-1;
3 _myColorTransform.blueMultiplier = -1;
4 _myColorTransform.redOffset = 255;
5 _myColorTransform.greenOffset = 255;
6 _myColorTransform.blueOffset = 255;

 

      可出来的效果跟预期的不一致。(图 1.19)

bubuko.com,布布扣

图 1.19 反色效果

 

      经过将近两周的纠结之后,我终于找到了问题的症结所在——跟BlendMode发生冲突了。因为BlendMode.ADD也是像素运算,两者混合后的运算机制以及优先级规则尚有待作进一步的研究。
把BlendMode.ADD一句去掉之后,反色效果跃然屏上。(图 1.20)

 
bubuko.com,布布扣图 1.20 修正后的反色效果

ActionScript3游戏中的图像编程(连载十三),布布扣,bubuko.com

ActionScript3游戏中的图像编程(连载十三)

标签:style   blog   http   color   io   for   2014   问题   

原文地址:http://www.cnblogs.com/iloveas/p/3888496.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!