Para lograr este efecto en GameMaker Studio 2, puedes utilizar la función image_xscale para cambiar la escala horizontal de tu sprite en negativo y la función image_index para reproducir tu animación en reversa.
Aquí hay un ejemplo de cómo podrías implementarlo:
Agrega una variable llamada reverse en el objeto donde se encuentra la animación que quieres reproducir al revés. Inicializa esta variable a false.
Agrega un evento de colisión con el objeto que indica el final de la animación. En este evento, establece la variable reverse a true.
En el evento Draw de tu objeto, agrega el siguiente código:
if (reverse) {
image_xscale = -1; // Escala horizontal en negativo para voltear el sprite
image_index -= 1; // Resta 1 a la variable image_index para reproducir la animación al revés
if (image_index <= 0) { // Si la animación se ha reproducido al revés, reinicia la animación y restablece la escala horizontal
image_xscale = 1;
image_index = image_number - 1;
reverse = false;
}
} else {
draw_sprite(sprite_index, image_index, x, y); // Dibuja la animación normalmente
}
Este código comprueba si la variable reverse es true. Si lo es, cambia la escala horizontal del sprite a negativo y resta 1 a image_index para reproducir la animación al revés. Si image_index llega a 0, la animación ha terminado de reproducirse al revés, por lo que se restablece la escala horizontal y image_index se reinicia a su valor inicial.
Espero que esto te ayude a lograr el efecto que estás buscando.