如何在 cocos2d 中创建色相(饱和度)选择器
Posted
技术标签:
【中文标题】如何在 cocos2d 中创建色相(饱和度)选择器【英文标题】:How to create a hue (saturation) picker in cocos2d 【发布时间】:2013-08-28 02:47:09 【问题描述】:我正在尝试为 cocos2d 创建一个简化的色相/饱和度选择器。我想创建一个渐变并从中挑选。我需要为每种颜色(如蓝色、红色等)重新着色黑白图像渐变。所以我需要创建许多渐变。我知道我应该使用一些混合功能来实现这一点。 但我仍然有点困惑什么是最好的方法。 我应该使用混合函数吗?
我的问题基本上是我使用从黑色到透明或到白色的渐变,但使用
sprite.setColor(color);
我得到了从黑色到所需颜色的渐变,但我需要从所需较暗颜色到白色的渐变。
【问题讨论】:
【参考方案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);
【讨论】:
是的,这个想法很好。我什至考虑过这一点,但我可以在 cocos2d 中将它转换为彩色 Sprite 并可以在屏幕上移动它吗?因此,我更倾向于使用黑白图像创建精灵,然后使用基色对其进行着色。以上是关于如何在 cocos2d 中创建色相(饱和度)选择器的主要内容,如果未能解决你的问题,请参考以下文章