Hola. hace tiempo que estoy haciendo un RPG por turnos pero estoy trabado en la parte de hacer que el jugador camine hacia el enemigo ataque y luego de que termine la animacion de ataque vuelva a su posicion inicial. E tratado diferentes metodos pero ninguno me funciona ¿alguien sabe como hacerlo ?

Guarda la posicion inicial en un par de variables (poisicion_x=x , posicion_y=y) y muevelo a esas coordenadas cuando termine de atacar.
Una maquina de estados tambien te ayudaria para planear el comportamiento del objeto y saber que hacer en cada momento.

Lo tengo  asi:

///Ataque
switch (strState)
{
case "fight":
//El jugador camina
  numVX = 3;
  sprite_index = sprTomWalk;
 

// cuando coliciona con el enemigo se detiene y cambia a la animacion de ataque
if place_meeting(x+12,y,objEnemigo)
{numVX = 0

  sprite_index = sprTomAtack;
   }
//detectar cuando termina la animacion cambiar a esta back
if image_index = image_number -1{strState = "back"}
  break;
 
  case "back":
   //caminar hacia atras
    numVX = -3;
    sprite_index = sprTomWalk;   
    //cuaando choca con el objBlock se detiene y cambia a estado idle
    if place_meeting(x-5,y,objBlock)
    {numVX = 0
     strState = "idle";
     break;
}
}

cuando el jugador coliciona con el enemigo cambia a la animacion de ataque pero por alguna razon la animacion se repite  un monton de veces en vez de cambiar al estado back

me parece que el problema está acá:
[gml]
witch (strState)
{
if place_meeting(x+12,y,objEnemigo)
{numVX = 0

  sprite_index = sprTomAtack;
   }
[/gml]
Se detiene, y se sigue cumpliendo en cada step la instruccion de sprite_index = sprTomAttack. Entonces se ejecuta el resto de lo que queda, pero en el siguiente step se vuelve a asignar, creo que es por eso que nunca termina de animarse porque se asigna de nuevo cada step.
intentá ponerle esta condicion:
[gml]
witch (strState)
{
if place_meeting(x+12,y,objEnemigo)
{numVX = 0
   if (sprite_index != sprTomAtack)
        sprite_index = sprTomAtack;
   }
[/gml]
eso haría que solo se asigne una vez, y por lo tanto no se repita la animacion infinitas veces



#4 Septiembre 23, 2019, 01:22:39 AM Ultima modificación: Septiembre 26, 2019, 12:32:15 AM por xStarLordx
Muchas gracias a 3dgeminis y Black_Cat por ayudarme con el RPG. E estado probando diferentes metodos hasta que llegue a el que use ahora. Muchas gracias de nuevo , ahora solo le anadire unas cuantas cosas mas como una contador de vida , que el enemigo pueda atacar y esas cosa.