Saludos makeros, tengo una duda que todavia np he planteado y es: como puedo colorizar una imagen poco a poco a un colorar, no necesaria mente tiene que ser negro.

Veran conozco como reducir y aumentar el alpha y ahora quisiera aprender a colorizar un sprite (empezando por negro); normal lo hago simple con el alpha
[gml]
if (hurt == maxhurt)
   alpha = max(0.4, alpha-0.025);
if (hurt == minhurt)
   alpha = max(0.65, alpha-0.05)
[/gml]
Eso funciona muy bien para reducir el alpha segun el daño pero ahora lo que quiero es colorizarlo poco a poco y desafortunadamente la variable image_blend solo lo hace de una forma image_blend = c_black; y sumandole, no creo que funcione

Asi que quisiera solo colorizarlo al igual que con el alpha, nose algo parecido a la opcion de "intensity" en el editor de sprite  ???

#1 Agosto 06, 2020, 08:13:45 PM Ultima modificación: Agosto 06, 2020, 08:22:52 PM por Tylag
Hola,
Para tu caso una posible solución es usar un shader, hay un shader gartuito en el market de yoyogames que te permite configurar el hue de sprites/backgrounds, etc.. https://marketplace.yoyogames.com/assets/2482/hue-shader

Por lo contrario si no quieres complicarte con shaders o usas una version antigua otra posible opción es usar:

[gml]image_blend = make_color_hsv(0,0,value);[/gml]
http://docs.yoyogames.com/source/dadiospice/002_reference/drawing/colour%20and%20blending/make_colour_hsv.html

En este caso el 0,0,0 (Tono, Saturacion, Valor) corresponde al negro, si juegas con el value puedes hacer que vaya transicionando en la escala de grises.
Edit: el valor tendras que moverlo entre el 0 y el 255.
El resultado seria algo asi:


Hay otras opciones un poco mas espartanas, como dibujar encima del propio sprite uno igual e irle sumando y bajando el alfa, etc.. pero no lo veo muy aconsejable.

Un saludo!

Gracias por la sugerencia, no conocia esa funcion de GameMaker, bueno claro tendre que usarla en el evento draw para no hacerlo en todos los sprites
[gml]
var shadow;
shadow = make_color_hsv(0, 0, fs);
draw_sprite_ext(spr_live, 0, x, y+8, 1, 1, 0, shadow, 1)
[/gml]