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 la pared es solida
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
///
/// 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