el asunto es que los enemigos cuando me persiguen chocan con las paredes y yo ya tengo el codigo que se supone que deberia hacer que el enemigo esquive los objetos solidos pero igualmente se chocan, el codigo que hace que los enemigos me persigan y el de para que los enemigos esquiven los objetos solidos estan aqui:


if distance_to_object(obj_jugador)<200
{
    mp_potential_step(obj_jugador.x,obj_jugador.y,2, false)
}

por favor ayudenme

en este codigo que pusiste no veo nada que evite que los enemigos choquen contra objetos solidos

Tienes los objetos pared, la opcion Solid marcada ?


Si estan a una distancia mayor de 200 los enemigos no se mueven ?.
Pon el codigo completo para ver si el problema es en otro lado

#5 Junio 17, 2018, 04:24:30 PM Ultima modificación: Junio 17, 2018, 04:27:52 PM por Sr.Mojon
///

/// rotacion al perseguirme
image_speed = 0.1
image_angle=direction
move_towards_point(obj_jugador.x,obj_jugador.y,1)

///vidas
if vidas<1 {instance_destroy()}


///seguimiento

if distance_to_object(obj_jugador)<200
{
    mp_potential_step(obj_jugador.x,obj_jugador.y,2, false)
}


y tambien me gustaria saber como cambiarle la velocidad a los enemigos

Puedes usar un else para que los dos movimientos no se interfieran
[gml]
///seguimiento
if (distance_to_point(obj_jugador.x, obj_jugador.y,) < 200)
{
  // Perseguir evitando las paredes. La velocidad aumenta
  image_speed = 0.2;
  mp_potential_step(obj_jugador.x, obj_jugador.y, 2, false);
  //                                              ^
  //                                          velocidad
}
else //si no está cerca
{
  // Acercarse en línea recta. No evita las paredes
  image_speed = 0.1;
  move_towards_point(obj_jugador.x, obj_jugador.y, 1);
  //                                               ^
  //                                           velocidad
}
// rotacion al perseguirme
image_angle = direction;

// vidas
if (vidas<1) instance_destroy();
[/gml]
distance_to_point se ejecuta más rápido que distance_to_object

ese codigo que me pones hace que los zombies eviten las paredes,aveces y el resto del tiempo los zombies se quedan dando vueltas en las esquinas y paredes y traspasan las paredes

Es cierto, move_towards_point se puede sustituir por
[gml]
mp_linear_step(obj_jugador.x, obj_jugador.y, 1, false);
[/gml]

cambie el codigo que me dijistes pero ahora cuando me alejo de los zombies se teletrasportan a donde estoy yo