Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Black_Cat en Abril 15, 2016, 02:41:15 AM

Título: Problema de colision con disparo parabolico
Publicado por: Black_Cat en Abril 15, 2016, 02:41:15 AM
hhhooola
estoy haciendo un juego de plataformas donde mi mascota puede lanzar una gaseosa en forma parabólica. Esto es, que el tiro salga hacia arriba y vaya cayendo, como si lanzaramos una pelota al aire.
La ilustracion del tiro que se quiere lograr está con una flecha en  amarillo:


(http://i1218.photobucket.com/albums/dd416/gato12893/problema_2.png) (http://s1218.photobucket.com/user/gato12893/media/problema_2.png.html)

el problema está en que la soda se queda trabada en el techo, un momento o un instante,  antes de caer. O bien antes de seguir con la trayectoria marcada en amarillo.


(http://i1218.photobucket.com/albums/dd416/gato12893/problema_3.png) (http://s1218.photobucket.com/user/gato12893/media/problema_3.png.html)
Como se ilustra en la imagen 2, el tiro se queda atascado un rato antes de caer. Las flechas indican que se queda girando, pero solo es por la animacion del sprite.

La cuestión es que no encuentro la manera de solucionarlo.
Paso a presentar los códigos implicados:


OBJ_SODA:
EV_Create
[GML]
image_speed = 0.7;
gravity = .5;
[/GML]

Ev_Colision con OBJ_Piso

[GML]
if (vspeed > 0){
    instance_destroy();
}[/GML]

bien, esta parte del código es para que se elimine la soda únicamente cuando esté cayendo, asi entonces debería (en teoria) traspasar los pisos si va desde abajo hacia arriba, pero nunca a la inversa(arriba hacia abajo).

Y el OBJ_piso no tiene mucho misterio ya que no tiene código alguno. Solo es sólido
El problema raíz esta en que no puedo hacerlo no sólido puesto que de otra manera la mascota se cae por el mapa.

Alguna sugerencia de solucion? :D
Título: Re:Problema de colision con disparo parabolico
Publicado por: Clamud en Abril 15, 2016, 05:01:43 AM
La razón del problema es que se usa un objeto sólido y un evento colisión con ese objeto, las colisiones con objetos sólidos mueven a la instancia a su posición anterior, por eso la soda se queda trabada, y cae hasta que su velocidad vertical se hace mayor a cero.
La solución es detectar la colisión con place_meeting, y dejar de usar el evento colisión.
Título: Re:Problema de colision con disparo parabolico
Publicado por: Black_Cat en Abril 15, 2016, 03:16:12 PM
La verdad la solucion terminó siendo bastante sencilla  :P
Investigando un poco en internet, adicionalmente, me topé con que, en verdad el uso de objetos solidos puede traer varios inconvenientes con respecto a las collisiones y hay por ahí gente que a final de cuentas termina desaconsejandolo. :-\
mirá vos, no tenía idea de que algo tan trivial pudiese causar tanto problema XD
gracias por la ayuda