Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: LeanGM en Julio 29, 2015, 06:54:40 AM

Título: Cambiar sprites segun el movimiento de un objeto [solucionado]
Publicado por: LeanGM en Julio 29, 2015, 06:54:40 AM
Buenas, quería saber como cambiar los sprites de un objeto al moverse hacia arriba, abajo, izq y der. Ojo, no digo al presionar las teclas, digo cuando un objeto se mueve.
Desde ya gracias :D
Título: Re:Cambiar sprites segun el movimiento de un objeto
Publicado por: penumbra en Julio 29, 2015, 07:12:09 AM
Depende de cómo muevas ese objeto. Por ejemplo, si se usa vspeed, entonces se preguntaría:

"si el signo de vspeed es negativo, activa el sprite de movimiento hacia arriba". Esto es:
[gml]
if (sign(vspeed) < 0)
     sprite_index = spr_arriba
[/gml]

Otra manera, que no depende de vspeed/hspeed sería: "si la variable xprevious es menor a x, entonces la dirección del movimiento es hacia la derecha", o sea:
[gml]
if (x > xprevious)
     sprite_index = spr_derecha
[/gml]
Título: Re:Cambiar sprites segun el movimiento de un objeto
Publicado por: LeanGM en Julio 29, 2015, 07:24:45 AM
Hola penumbra, muchas gracias, me funciona perfecto  :D  :D
Título: Re:Cambiar sprites segun el movimiento de un objeto
Publicado por: fasst007 en Julio 29, 2015, 07:35:56 AM
Para ir a la izquierda simplemente haz esto:

if (x < xprevious)
     sprite_index = spr_izquierda


para arriba:

if (y < yprevious)
     sprite_index = spr_arriba


para abajo:

if (y > yprevious)
     sprite_index = spr_abajo


y para ir a la derecha si bien ya se dijo mas arriba, lo vuelvo a poner:

if (x > xprevious)
     sprite_index = spr_derecha