Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: T789 en Agosto 06, 2020, 03:46:42 PM

Título: Colorizar un sprite a negro poco a poco
Publicado por: T789 en Agosto 06, 2020, 03:46:42 PM
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  ???
Título: Re:Colorizar un sprite a negro poco a poco
Publicado por: Tylag en Agosto 06, 2020, 08:13:45 PM
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:
(https://media3.giphy.com/media/TFZOZtvWdLjRIvnzcg/giphy.gif)

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!
Título: Re:Colorizar un sprite a negro poco a poco
Publicado por: T789 en Agosto 06, 2020, 08:45:00 PM
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]