Foro de elhacker.net

Media => Diseño Gráfico => Mensaje iniciado por: Panic0 en 20 Octubre 2020, 04:23 am



Título: AYUDA GAME MAKER STUDIO 2
Publicado por: Panic0 en 20 Octubre 2020, 04:23 am
Hola a todos,Quiero hacer un efecto como el que se ve en la imagen que cuando llegue al final (al ultima frame) se reproduzca al revés.Pero no se como puedo hacer algo así,si me podrían ayudar seria mas que excelente.
https://gyazo.com/f1229e62866f4352f2d56668973056ee

Gracias de antemano!







::)


Título: Re: AYUDA GAME MAKER STUDIO 2
Publicado por: EdePC en 20 Octubre 2020, 13:55 pm
Por lo que he visto basta con poner la velocidad de frames en negativo, puedes revisar el siguiente post: https://forum.yoyogames.com/index.php?threads/reverse-sprite-animation-and-change-sprite_index.39255/


Título: Re: AYUDA GAME MAKER STUDIO 2
Publicado por: LlopoRobot en 3 Abril 2023, 07:48 am
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:

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.