Hola, quiero hacer unos simples enemigos q cuando vean al personaje lo persigan como se ve en la imagen, pero he tenido algunos inconvenientes (Uso Step Toward Point para el seguimiento):





Los enemigos son los grises, como se ve, despues de un tiempo de evadirlos los enemigos se van "juntando" hasta q al final quedan los 3 sprites uno encima del otro, y no es la idea.

Me gustaria q los enemigos persiguieran al jugador sin sobreponerse, intenté dejarlos en "solid", pero el problema es q cuando colisionan se detienen y ninguno avanza. ¿Alguien tiene algun algoritmo eficiente para esta clase de enemigos (que son bastante comunes por cierto)? Agradecería q me pudieran ayudar  :)



Sígueme en Twitter!
@Aesir_Games

/*usa esto en vez de step... lo que usaste.
lo colocas en el documento que sale en la pestaña control y que se llama execute codigo.
y claro el event es el event step.-*/
if instance_exists(objPlayer) //cambia el objPlayer por como se llame tu personaje.
{
if image_angle= point_direction(x,y,objPlayer.x,objPlayer.y) and distance_to_object(objPlayer)<96 //si lo esta mirando, cambia 96 por el radio de alcance de la vision.
{
direction=image_angle; image_angle=point_direction(x,y,objPlayer.x,objPlayer.y); //ajusta la direccion y lo sigue con la vista, osea se coloca en direccion al objPlayer.
if !place_meeting(x+lengthdir_x(speed,direction),y+lengthdir_y(speed,direction),objAve) //si no choca con
//otra ave claro cambia ave por como se llave el enemigo que lleva este codigo.
{speed=5;} //cambia 5 por la velocidad del movimiento.
}}
//solo se movera si no choca con otra ave de esa manera deberia mantener la distancia
//ya que primero verifica si tiene espacio y luego se movera.

//para entender mas el codigo te sugiero busques en el manual que hace cada uno de los codigos que use aqui.

mmm... hice lo que dijiste pero sólo funciona si borro esta linea de tu codigo (con ella los enemigos no hacen nada):

image_angle= point_direction(x,y,jugador.x,jugador.y) //jugador es mi objPlayer

pero aún asi se siguen superponiendo los sprites y no se detienen cuando chocan



Sígueme en Twitter!
@Aesir_Games

//cambia esta linea
if !place_meeting(x+lengthdir_x(speed,direction),y+lengthdir_y(speed,direction),objAve)
//por esta linea
if !collision_circle(x+lengthdir_x(speed,direction),y+lengthdir_y(speed,direction),32,objAve,1,0)

sigue sin funcionar, no se mueven, solo sigen al jugador con la vista



Sígueme en Twitter!
@Aesir_Games

ajusta la ultima linea que te di cambiando el 32.

de una manera chapucera (típico de mi), yo pondría una simple colisión al enemigo contra otro enemigo, un simple bounce mismo, lo malo es que muchas veces se vuelven locos y se mueven raro xd, pruebalo, si te vale, pues ya es algo jaja
en http://krstudyos.blogspot.com solo hay basura... mejor que ni entres...