Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: luis28240 en Abril 27, 2016, 04:01:47 AM

Título: Poner un sprite en color blanco con image_blend.
Publicado por: luis28240 en Abril 27, 2016, 04:01:47 AM
Bueno, resulta que quiero saber como poner los sprite de color blanco mediante la función:
image_blend
Si existe un mejor método díganme  ;)

NO quiero usar el método de cambiar de sprite, Gracias.
Título: Re:Poner un sprite en color blanco con image_blend.
Publicado por: Clamud en Abril 27, 2016, 06:37:23 PM
La variable image_blend no se puede usar para dibujar un sprite en blanco, porque en realidad la variable no guarda un color que se combina con el sprite, más bien es un multiplicador de color. Por ejemplo, si un sprite tiene pixels negros, cuyo valor de color es cero, aunque la variable image_blend sea blanco no modificará el color de esos pixels, porque cualquier valor multiplicado por cero es igual a cero. Sin embargo, existen otras alternativas para lograr ese efecto.

Un método es crear una copia del sprite en blanco, y dibujar ese sprite encima del sprite original. Éste es el método menos eficiente, porque se crea una nueva página de textura para almacenar el sprite.

Otro método es invertir los colores de un área rectangular, después dibujar el sprite en negro (con image_blend=c_black o draw_sprite_ext) y volver a invertir los colores del área rectangular. Para ello se usa este script: http://www.gmlscripts.com/script/draw_rectangle_inverted (http://www.gmlscripts.com/script/draw_rectangle_inverted)

Los dos métodos anteriores se muestran en un archivo adjunto.

El mejor método en GMS es usar un shader, como el shader #6 que aparece en la demo de la imagen:
(http://i.imgur.com/yq469Cp.png)
Título: Re:Poner un sprite en color blanco con image_blend.
Publicado por: luis28240 en Abril 29, 2016, 03:17:26 AM
Gracias  ;D