Tutorials:修改图片的颜色

来自Starling中文站
跳转到: 导航, 搜索

http://wiki.starling-framework.org/tutorials/modifying_the_color_of_an_image

你曾经是否对Starling的Image类为什么有一个color属性而感到疑惑不解?的确,你可以用这个属性来对一个纹理着任何色!

这个时候,它可以用在不用物件上,比如感兴趣的加亮物件上,我想展示给你一个特别有用的方法来保存纹理空间。

比方说你有一个类似“同色游戏”或“俄罗斯方块”中包含大量不同颜色区块这样风格的游戏。由于有了Image的color属性,你仅仅需要创建一个诸如白色图像的区块。为了在屏幕上显示真实的区块,你只需要设定它的颜色即可。 代码如下:

[Embed(source="white_block.png")]
private var EmbeddedTexture:Class;
 
var blockTexture:Texture = Texture.fromBitmap(new EmbeddedTexture());
 
var redBlock:Image = new Image(blockTexture);
redBlock.color = Color.RED;
 
var greenBlock:Image = new Image(blockTexture);
greenBlock.color = Color.GREEN;
 
// etc.!

输出的颜色,是纹理中一个像素颜色与方盒颜色乘积的结果。那意味着这样的话你永远不能使用color属性来使纹理看起来更亮,而是更暗淡。(这是因为这个乘法的两侧都含有0到1的值。要使颜色更亮,你得用一个大于1的值来乘以它!)

Tinted blocks.png

翻译: 郭必江(begun kwok)

个人工具
名字空间

变换
操作
导航
Starling中文资料
Starling原创教程
论坛
友链
工具箱