Noticias

¡Ayuda a la Comunidad GM, haz una donación!

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: Hacer un bounce de manera "elegante"?  (Leído 819 veces)

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

Desconectado _-Caleb-_

  • Asiduo
  • *
  • Puntos: 183
  • Mensajes: 123
    • Ver Perfil
    • Cadetes del Espacio
en: Marzo 09, 2014, 08:41:54 pm
Buenas.

En un nivel los enemigos deben seguir al jugador y tal y esto lo hacen bien, el problema es el bounce, ya que cuando colisionan con algún objeto sólido más o menos grande se ponen ahí a rebotar "infinitamente" hasta puedan superar el obstáculo...

¿Hay alguna manera de hacer esto de una forma menos "cochambrosa"?

Saludos y gracias gmakeros :)

Visita mi proyecto: Space Cadet
 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado gortz

  • Habitual
  • *
  • Puntos: 59
  • Mensajes: 49
    • Ver Perfil
Respuesta #1 en: Marzo 09, 2014, 09:05:14 pm
coloca tu codigo para saber que corregir

 


Desconectado Mgbu

  • Okupa
  • *
  • Puntos: 548
  • Mensajes: 817
  • Sexo: Masculino
  • Hola! (?)
    • Ver Perfil
Respuesta #2 en: Marzo 09, 2014, 11:06:04 pm
Lo que entiendo es que al seguir algún objeto que está del otro lado de la pared el objeto que sigue choca contra la pared hasta que encuentra camino. Lo único que se me ocurre es que hagas algún tipo de planificación de movimiento para que el objeto seguidor esquive obstáculos, el problema es que es algo un poco más avanzado, acá tenés las funciones del manual (es un manual de GM7, el GMStudio puede ser distinto)

El Manual

- Ley de la gravitación selectiva: toda herramienta se caerá donde produzca el mayor daño.
- Si todo parece estar bien, es obvio que uno no encontró el problema
- Todo aquello que se corte a medida resultara ser demasiado corto.
- Todo archivo borrado era necesario, todo archivo conservado es inutil
- Cuando a usted se le ocurra la solución ideal, alguien habrá resuelto ya el problema.

                                                               Murphy

 


Desconectado penumbra

Respuesta #3 en: Marzo 09, 2014, 11:19:10 pm
Si el problema no es el rebote en sí, sino que sea infinito, se puede hacer que cada que se colisiona con una pared o muro o piso, disminuir la velocidad del rebote, y si se acerca a cero o a un valor bajo, detener al objeto (o de otra manera: permitir el rebote sólo cuando la velocidad sea mayor a xxx cantidad). También se podría hacer que el rebote pare si el enemigo está muy lejos de esa zona.

 


Desconectado _-Caleb-_

  • Asiduo
  • *
  • Puntos: 183
  • Mensajes: 123
    • Ver Perfil
    • Cadetes del Espacio
Respuesta #4 en: Marzo 10, 2014, 09:05:00 am
Lo que entiendo es que al seguir algún objeto que está del otro lado de la pared el objeto que sigue choca contra la pared hasta que encuentra camino. Lo único que se me ocurre es que hagas algún tipo de planificación de movimiento para que el objeto seguidor esquive obstáculos, el problema es que es algo un poco más avanzado, acá tenés las funciones del manual (es un manual de GM7, el GMStudio puede ser distinto)

Gracias, me ha valido, para lo que quiero hacer, con el mp_potential_step :)

Si el problema no es el rebote en sí, sino que sea infinito, se puede hacer que cada que se colisiona con una pared o muro o piso, disminuir la velocidad del rebote, y si se acerca a cero o a un valor bajo, detener al objeto (o de otra manera: permitir el rebote sólo cuando la velocidad sea mayor a xxx cantidad). También se podría hacer que el rebote pare si el enemigo está muy lejos de esa zona.

El problema era que cuando los enemigos colisionaban con los edificios se quedaban ahí rebotando, sin seguir la ruta del jugador... pero ya está solucionado :)

Gracias a ambos!!

Visita mi proyecto: Space Cadet