Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: carras en Diciembre 12, 2014, 12:51:13 AM

Título: Problema con la caja de colisiones en (platformer)
Publicado por: carras en Diciembre 12, 2014, 12:51:13 AM
Hola chico sigo liado con el plataformas ahora tengo problemas con la colision de mi personaje. Tengo objetos de 30x30 como si fueran tiles para hacer suelo escaleras y otras cosas.
Mi personaje es de 30x44 con sus 4 animaciones (idle,correr,salto,caida) el personaje no ocupa todo ese tamaño, tengo la mascara de colision en full image y todo esta perfecto, correr, saltos a plataformas, caidas, colision con pared todo genial, pero claro las colisiones con objetos no son nada precisas, por qaue el ninja no abarca esos 30x44. Asi que manualmente he decidido reducir la mascara de colision de todas las animaciones del personaje al "mismo tamaño" y cuando lo pruebo el ninja aveces se queda atascado en el suelo o la pared o en una esquina.. supongo que tendra que ver algo la mascaras y el cambio de animaciones pero por que falla¿? si las 4 animaciones tienen el mismo tamaño de mascara....
Título: Re:Problema con la caja de colisiones en (platformer)
Publicado por: emanuelsko en Diciembre 12, 2014, 01:23:37 AM
No se si es tu caso pero muchos cometen el error de utilizar máscaras de colosion idénticas a sus sprite.

Por las dudas te lo digo, capaz que ese es tu error. El sprite que utilices como máscara de colición fijate que siempre sea una figura geometrica pura. Claro que dependiendo de la forma de tu personaje. Si es un personaje medio cuadrado, pues utiliza como máscara de colicion un cuadrado de las dimenciones de tu personaje. Y si quieres puedes darle a precis colition, modifica la máscara y le das a eclipse. Para mi esa es la mejor manera y te aseguro que jamás tendrás problemas
Título: Re:Problema con la caja de colisiones en (platformer)
Publicado por: carras en Diciembre 12, 2014, 12:00:25 PM
He p`robado con eclipse pero no me sirve por que al ser redonda cuando llegas al final del suelo para caer se queda atascado en la esquina de la tile
Título: Re:Problema con la caja de colisiones en (platformer)
Publicado por: TheSandBoxMKG en Diciembre 12, 2014, 03:29:19 PM
Cita de: carras en Diciembre 12, 2014, 12:00:25 PM
He p`robado con eclipse pero no me sirve por que al ser redonda cuando llegas al final del suelo para caer se queda atascado en la esquina de la tile

Entonces tiene que ser cuadrada la colision
Título: Re:Problema con la caja de colisiones en (platformer)
Publicado por: carras en Diciembre 12, 2014, 03:49:24 PM
pero si hago la cuadrada pero manual para reducir un poco el tamaño de la caja no me tendria que dar problemas verdad¿?
Título: Re:Problema con la caja de colisiones en (platformer)
Publicado por: Clamud en Diciembre 12, 2014, 04:40:48 PM
¿La reacción a las plataformas se hace en el evento colisión con un objeto sólido?, ese puede ser el problema. He notado que muchos tienen problemas parecidos al seguir el tutorial de plataformas más común en internet.
Título: Re:Problema con la caja de colisiones en (platformer)
Publicado por: TheSandBoxMKG en Diciembre 12, 2014, 05:20:40 PM
Recomiendo que para los personajes que se mueven y saltan, siempre colisión cuadrada, ya que si hay suelo debajo, aunque sea debajo de la mano, siempre el juego va a creer que pisaste el suelo.
Título: Re:Problema con la caja de colisiones en (platformer)
Publicado por: carras en Diciembre 12, 2014, 06:17:42 PM
Tengo colision cuadrada, y la funcio place_meeting para detectar conlisiones
Título: Re:Problema con la caja de colisiones en (platformer)
Publicado por: jaimitoes en Diciembre 13, 2014, 06:10:31 AM
hay varias formas de hacer esto pero las colisiones siempre son problema para la gente:

si usas vspeed y hspeed :

//colision horizontal

var colision_h;
colision_h= place_meeting (x+hspeed,y,tupared);

if (colision_h)
{
  hspeed =0;
}

// colision vertical

var colision_v

colision_v = place_meeting (x,y+vspeed,tupared)

if (colision_v)

{
  vsp =0;
}

hay colisiones mas complejas, pero mira a ver si te sirve esto...