Game Maker. Cambio de sprite con animación?

Kaos

Buenas! Me gustaría saber si hay manera de hacer un cambio de sprite en un objeto (que hasta aquí llego) pero (y aquí viene mi duda) con una animación (fundido) de una a otra.

Por ejemplo:

Tengo un sprite de un botón rojo.
Otro sprite de un botón verde.
Quiero que al pulsar el botón, se pase del rojo al verde pero con una transición y no de manera brusca.

Gracias!

PD: El código actual es así de básico:

switch (sprite_index) {
   case spr_candy_verde:
    sprite_index = spr_candy_azul;
   break;
   case spr_candy_azul:
    sprite_index = spr_candy_rojo;
   break;
   case spr_candy_rojo:
    sprite_index = spr_candy_verde;
   break;
  }
Jastro

#1 Por defecto, no recuerdo que haya algo para generar una transicion, tienes que hacerlo tu manual, si es algo simple, con jugar con las image_alpha o si es algo mas complejo dibujarlo. Depende de lo que busques.

1
javifugitivo

La idea es que tengas dos sprites, uno encima del otro. Simplemente con hacer transparente el caramelo de arriba, aparecerá el de abajo, que puedes hacer que aparezca de image_alpha = 0, pero un poco más rápido que el que va a desaparecer. Seguidamente, cuando termine la transición, cambias de golpe el sprite del objeto y dejas de dibujar el sprite encima.

Otra opción más complicada es jugar con image_blend y el sprite del caramelo en blanco, y tintarlo de un make_color_rgb(r,g,b) variando valores para pasar del verde al rojo, esta opción es más complicada, eso sí.

La cuarta opción es crear a mano los sprites de cambio entre el rojo y el verde.

GhostWalking

si te he entendido y simplificandolo mucho tienes las siguientes 4 imagenes:

boton verde
boton verde pulsado
boton rojo
boton rojo pulsado

si pones el boton rojo y el verde pulsado en el mismo sprite (0 rojo, 1 verde pulsado con la velocidad de animación a 0) podría servirte si te he entendido.

Usuarios habituales

  • GhostWalking
  • javifugitivo
  • Jastro
  • Kaos