Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: xStarLordx en Septiembre 19, 2019, 03:25:50 am

Título: Ayuda Juego RPG por turnos
Publicado por: xStarLordx en Septiembre 19, 2019, 03:25:50 am
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 ?
Título: Re:Ayuda Juego RPG por turnos
Publicado por: 3dgeminis en Septiembre 20, 2019, 04:17:06 am
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.
Título: Re:Ayuda Juego RPG por turnos
Publicado por: xStarLordx en Septiembre 21, 2019, 03:25:55 am
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
Título: Re:Ayuda Juego RPG por turnos
Publicado por: Black_Cat en Septiembre 21, 2019, 03:26:54 pm
me parece que el problema está acá:
witch (strState)
{
if place_meeting(x+12,y,objEnemigo)
 {numVX = 0

  sprite_index = sprTomAtack;
   }
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:
witch (strState)
{
if place_meeting(x+12,y,objEnemigo)
 {numVX = 0
   if (sprite_index != sprTomAtack)
        sprite_index = sprTomAtack;
   }
eso haría que solo se asigne una vez, y por lo tanto no se repita la animacion infinitas veces
Título: Re:Ayuda Juego RPG por turnos
Publicado por: xStarLordx en Septiembre 23, 2019, 01:22:39 am
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.