Noticias

Se ha publicado un nuevo servicio, el Portal de Juegos Online

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Ayuda  (Leído 335 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Sr.Mojon

en: Junio 23, 2018, 04:16:23 am
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();
« última modificación: Junio 23, 2018, 04:54:38 am por Sr.Mojon »

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado Clamud

Respuesta #1 en: Junio 24, 2018, 07:26:55 pm
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
angulo = direction;
En el evento Step sustituye la variable image_angle por angulo.
Y en el evento Draw dibuja el sprite de esta forma
draw_sprite_ext( sprite_index, image_index, x, y, 1, 1, angulo, c_white, 1 );

 
Los siguientes usuarios dieron las gracias a este tema: Sr.Mojon