necesito que me ayuden en esto yo tengo en mis enemigos el codigo para que eviten las paredes y no se choquen con ellas pero como esta puesto para que los zombies roten y miren siempre al personaje lo de evitar las paredes y meterse por el espacio que les dejo para que entren no lo hacen y se quedan pegados pero si quito los de que roten para que vean a mi personaje todo lo hacen perfecto (lo de evitar las paredes y todo eso), entonces yo quiero es que cuando los zombies estan evitando los muros para entrar a la casa no roten la camara paro el resto del tiempo si lo hagan les voy a dejar el codigo del evento step del zombie que es donde esta todo el codigo relacionado con eso:
///seguimiento
if (distance_to_point(obj_jugador.x, obj_jugador.y,) < 200000)
{
// Perseguir evitando las paredes. La velocidad aumenta
image_speed = 0.2;
mp_potential_step(obj_jugador.x, obj_jugador.y, 1, false);
// ^
// velocidad
}
// rotacion al perseguirme
image_angle = direction;
// vidas
if (vidas<1) instance_destroy();
El problema es que al rotar la máscara de colisión cambia y a veces la función mp_potential_step trata de buscar una salida desde una posición con colisión.
En el evento Create declara una variable para controlar el ángulo del sprite
[gml]
angulo = direction;
[/gml]
En el evento Step sustituye la variable image_angle por angulo.
Y en el evento Draw dibuja el sprite de esta forma
[gml]
draw_sprite_ext( sprite_index, image_index, x, y, 1, 1, angulo, c_white, 1 );
[/gml]