Noticias

Se ha publicado un nuevo servicio, el Portal de Juegos Online

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Ayuda Juego RPG por turnos  (Leído 488 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado xStarLordx

  • Visitante
  • *
  • Puntos: 9
  • Mensajes: 6
    • Ver Perfil
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 ?

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado 3dgeminis

Respuesta #1 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.

 


Desconectado xStarLordx

  • Visitante
  • *
  • Puntos: 9
  • Mensajes: 6
    • Ver Perfil
Respuesta #2 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

 


Desconectado Black_Cat

  • Ganador CGM Game Jam #1
  • Adicto
  • *
  • Puntos: 745
  • Mensajes: 356
  • Agradecido: 60 veces
  • 🧡🧡🧡🧡🧡
    • Ver Perfil
Respuesta #3 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

Únete al servidor mas chidori de Discord

 


Desconectado xStarLordx

  • Visitante
  • *
  • Puntos: 9
  • Mensajes: 6
    • Ver Perfil
Respuesta #4 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.
« última modificación: Septiembre 26, 2019, 12:32:15 am por xStarLordx »