2013-08-28 3 views
0

Я пытаюсь создать упрощенный сборщик оттенков/насыщенности для cocos2d. Я хочу создать градиент и выбрать из него. Мне нужно перекрасить черно-белый градиент изображения для каждого цвета, такого как синий, красный и другие. Поэтому мне нужно создать много градиентов. Я знаю, что для этого я должен использовать некоторые функции смешивания. Но я все еще немного смущен тем, что является лучшим способом для продолжения. Должен ли я использовать функции смешивания вообще?Как создать сборщик оттенков (насыщения) в cocos2d

Моя проблема в основном в том, что я использую градиент от черного к прозрачному или белый, но с

sprite.setColor(color); 

Я получаю градиент от черного до нужного цвета, но мне нужен градиент от желаемого темного цвета в белый.

ответ

1

Что вам нужно сделать, так это создать двумерный градиент, который переходит от ненасыщенного к насыщенному слева направо и от темноты к свету снизу вверх. Я бы сделал это, создав новое растровое изображение (или если вы используете 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); 
    } 
} 
+0

Да, идея хорошая. Я даже подумал об этом, но могу ли я преобразовать его в цветной спрайт в cocos2d с возможностью его перемещения по экрану? Поэтому я был более склонным к созданию спрайта с использованием черно-белого изображения, а затем для его цветного базового цвета. –

Смежные вопросы