0

我正在尝试为 cocos2d 创建一个简化的色相/饱和度选择器。我想创建一个渐变并从中挑选。我需要为每种颜色(如蓝色、红色等)重新着色黑白图像渐变。所以我需要创建许多渐变。我知道我应该使用一些混合功能来实现这一点。但我仍然有点困惑什么是最好的方法。我应该使用混合功能吗?

我的问题基本上是我使用从黑色到透明或白色的渐变,但使用

sprite.setColor(color);

我得到了从黑色到所需颜色的渐变,但我需要从所需的较暗颜色到白色的渐变。

4

1 回答 1

1

您需要做的是创建一个 2D 渐变,从左到右从不饱和到饱和,从下到上从暗到亮。我会通过创建一个新的位图(或者如果你使用 OpenGL,一个纹理)来做到这一点。然后,我将使用以下伪代码为每个像素着色:

hue = <whatever the user set the hue to>
for (row = 0; row < height; row++)
{
    for (col = 0; col < width; col++)
    {
        sat = col / width;
        val = row / height;
        rgb = HSVToRGB(hue, sat, value);
        setPixel (col, row, rgb);
    }
}
于 2013-08-28T04:08:15.823 回答