Hola, buenas a todo el mundo. Es la primera vez que posteo en este foro.

Soy un completo novato en este mundo de la programación y es posible que lo que vaya a preguntar sea algo muy básico, llevo dos días intentándolo y no lo consigo.
La situación es la siguiente. Se trata de que cuando el personaje (protagonista) se acerque a una lapida aparezca una fantasma (con una animación) y después se quede flotando (me imagino que con otra animación diferente).

Esto es lo que puse en el evento Step de la lapida

if distance_to_object(objectPersonaje) <10 {
instance_create_layer(x,y,"Instances",objectFantasmaAparicion)
}


El problema es que cuando me acerco a la lapida no para de repetirse la animación y van apareciendo fantasmas todo el tiempo.
Mi intención es que haga la aparición una sola vez y después se quede flotando para poder iniciar un dialogo con el. Tengo una segunda animación con un segundo objeto (que es el fantasma flotando, nada una chorrada se mueve un pixel arriba y otro abajo) y la idea es esa, que aparezca y se quede flotando.

No se si me he explicado bien del todo, espero que con esta información me podais ayudar, un saludo!

Chequea si el fantasma ya existe también, en la primera línea de código, añade esto otro:

and instance_exists(objectFantasmaAparicion)=false

#2 Febrero 25, 2019, 03:56:31 PM Ultima modificación: Febrero 25, 2019, 04:00:48 PM por Fashion_Trozos
Cita de: Arcadian en Febrero 25, 2019, 01:28:39 PM
Chequea si el fantasma ya existe también, en la primera línea de código, añade esto otro:

and instance_exists(objectFantasmaAparicion)=false

Muy buenas! Añadiendo esta linea que me planteas ha funcionado a medias! pero sí, era exactamente lo que necesitaba.
Poniendo esto:

if distance_to_object(objectPersonaje) <10 and instance_exists(objectFantasmaAparicion) = false
        {
instance_create_layer(780,420,"Instances",objectFantasmaAparicion)
}


La animación seguía repitiéndose, pero no creaba un fantasma detrás del otro, antes se llegaba a ver como se creaban varios fantasmas por segundo (evento Step). Añadiendo la linea que me pasaste se veía como se creaba un fantasma y al finalizar la animación se repetía la animación desde el principio, pero no varios a la vez (uno por frame, me imagino). Teniendo esto solucionado añadí un evento Otro/fin de la animación y ahí puse:

image_index = 20
image_speed = 0


Donde 20 es el ultimo cuadro de la animación.

Haciéndolo así funciona. Mi pregunta ahora es, ¿como puedo hacer que después de finalizar la animación pase a la otra animación del fantasma flotando?

Lo que he echo es añadir esto:

//He cambiado el sprite
sprite_index = spriteFantasmaFlotando;
image_index = 0;
image_speed = 1

Ahora sucede la animacion (se ve como el fantasma va formandose mientras sale de una lapida) y después pasa a la otra animación (se queda el fantasma ya formado flotando, se mueve un pixel arriba y otro abajo)

Lo hariais de esta manera?