Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Hezz en Julio 07, 2018, 03:08:34 AM

Título: Movimiento aleatorio de los enemigos
Publicado por: Hezz en Julio 07, 2018, 03:08:34 AM
Hola a todos. Tengo un problema con mi juego, y es que quiero hacer que mi enemigo se mueva de forma aleatoria por el nivel, antes de que el jugador se acerque y lo detecte, como un modo idle. Este efecto está en algunos juegos RPG, pero no puedo replicarlo, ¿alguna ayuda?

Este es el código que estoy probando:
///Create
//Stats del enemigo
hp = 10;
dmg = 3;
speed = 1;

//Valores para movimiento aleatorio
xr = 0;
yr = 0;

//Iniciar la randomizacion del movimiento
alarm[0] = 90; //1.5 seg

///Alarm[0]
xr = random(196) * choose(1,-1) + x;
yr = random(196) * choose(1,-1) + y;

mp_potential_step(xr,yr,speed,false);

sprite_index = spr_skeleton_walking;
image_speed = 0.2;

///Step
depth = -y;
if (mp_potential_step(xr,yr,speed,false)){
    alarm[0] = 120 + random(120);
    sprite_index = spr_skeleton_idle;
}

///Game start
randomize();
Título: Re:Movimiento aleatorio de los enemigos
Publicado por: 3dgeminis en Julio 07, 2018, 08:50:23 PM
La parte del codigo que activa la alarma en el evento STEP mejor colocala en la ALARMA(en el STEP me parece que esta continuamente reiniciandose), y el mp_potential_step(xr,yr,speed,false); en la alarma es solo se ejecuta una vez no como en STEP que es continuamente y no sirve de nada ahi.
Lo mejor seria hacer una maquina de estados finitos para controlar el comportamiento del enemigo, aqui hay un articulo https://gamedevelopment.tutsplus.com/es/tutorials/finite-state-machines-theory-and-implementation--gamedev-11867 (https://gamedevelopment.tutsplus.com/es/tutorials/finite-state-machines-theory-and-implementation--gamedev-11867),
y asi separar los distintos comportamientos del enemigo.
Título: Re:Movimiento aleatorio de los enemigos
Publicado por: Hezz en Julio 07, 2018, 09:00:04 PM
Voy a probar. Muchas gracias!!
Título: Re:Movimiento aleatorio de los enemigos
Publicado por: MateG_ en Julio 28, 2018, 04:53:27 PM
   Hola, no estoy seguro de de qué forma estás estableciendo tus estados y el movimiento. Sin embargo encontré un video de Friendly Cosmonaut que lo explica bastante bien, además de que replica a un enemigo básico de un RPG, espero que te sirva.

   Acá el link: https://youtu.be/DYkJ91eg67Y
Título: Re:Movimiento aleatorio de los enemigos
Publicado por: Hezz en Julio 29, 2018, 04:43:16 AM
Hola MateG_. Ya estuve viendo algunos videos sobre el tema y se me fue aclarando. Gracias por la ayuda!!