Por ejemplo:
Tengo 1 sprite cuadrado de color azul y otro de color rojo.
Quiero que el sprite de color azul se transforme poco a poco al de color rojo.
Hola, amigo hace rato me ayudaron con este problema de paso te paso un grupo en facebook si se puede? https://www.facebook.com/groups/GMLATINOS
de donde me ayudaron
coloca esto [DRAW]
draw_sprite_ext(Player.sprite_index,Player.image_index,Player.x,Player.y,Player.image_xscale,Player.image_yscale,0,make_color_rgb(ValorRojo,ValorAzul,ValorVerde),1)
el mayor numero es 255 en valor rojo, azul, verde y el menor es 0
entre mas valor tiene el rojo que los otros el sprite sera rojo asi que con variables puedes acomodar a tu gusto suerte
Mucho mas facil! Si tienes game maker studio 1.4 cuando creas un sprite hay un sitio donde pone: animation (o algo asi) y pones: colorize, y pones el numero de fotogramas (Sprites) en el que quieres que cambie de color, y si quieres que vuelva a el color de antes y luego cambie al nuevo todo el rato añade 'add reverse'
make_color_rgb(ValorRojo,ValorAzul,ValorVerde) tiene un error. No es Rojo,Azul,Verde sino Rojo,Verde,Azul. :-X
De todos modos, es muy interesante esta función, ya que junto a image_alpha puedes libremente modificar las características de los sprites. ;D
Si quieres hacer una transición entre colores con matices más complicados usa la función merge_colour http://docs.yoyogames.com/source/dadiospice/002_reference/drawing/color%20and%20blending/merge_color.html (http://docs.yoyogames.com/source/dadiospice/002_reference/drawing/color%20and%20blending/merge_color.html)
Primero define los colores inicial y final, y la variable que controla la cantidad de color:
[gml]
color1 = make_color_rgb( rojo, verde, azul );
color2 = make_color_rgb( rojo, verde, azul );
t = 0;
[/gml]
Después se asigna la variable image_blend para colorear el sprite:
[gml]
if( t < 1 ) t += 0.01;
image_blend = merge_color( color1, color2, t );
[/gml]