Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Sr.Mojon en Junio 15, 2018, 11:20:43 PM

Título: ayuda con los enemigos
Publicado por: Sr.Mojon en Junio 15, 2018, 11:20:43 PM
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
Título: Re:ayuda con los enemigos
Publicado por: El_mas_chingon en Junio 16, 2018, 05:24:44 AM
en este codigo que pusiste no veo nada que evite que los enemigos choquen contra objetos solidos
Título: Re:ayuda con los enemigos
Publicado por: 3dgeminis en Junio 16, 2018, 08:37:36 AM
Tienes los objetos pared, la opcion Solid marcada ?
Título: Re:ayuda con los enemigos
Publicado por: Sr.Mojon en Junio 16, 2018, 05:57:50 PM
si la pared es solida
Título: Re:ayuda con los enemigos
Publicado por: 3dgeminis en Junio 16, 2018, 11:34:48 PM
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
Título: Re:ayuda con los enemigos
Publicado por: Sr.Mojon en Junio 17, 2018, 04:24:30 PM
///

/// 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
Título: Re:ayuda con los enemigos
Publicado por: Clamud en Junio 17, 2018, 05:02:33 PM
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
Título: Re:ayuda con los enemigos
Publicado por: Sr.Mojon en Junio 17, 2018, 05:50:41 PM
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
Título: Re:ayuda con los enemigos
Publicado por: Clamud en Junio 19, 2018, 07:55:55 AM
Es cierto, move_towards_point se puede sustituir por
[gml]
mp_linear_step(obj_jugador.x, obj_jugador.y, 1, false);
[/gml]
Título: Re:ayuda con los enemigos
Publicado por: Sr.Mojon en Junio 20, 2018, 05:50:50 PM
cambie el codigo que me dijistes pero ahora cuando me alejo de los zombies se teletrasportan a donde estoy yo