Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Xuturk en Diciembre 06, 2009, 06:41:13 PM

Título: colision de un coche
Publicado por: Xuturk en Diciembre 06, 2009, 06:41:13 PM
Hola, hace poco pedi por aqui el movimiento para un coche y ya he conseguido por fin hacerle que se mueva tal y como yo quiero. Ahora mi problema viene con las colisiones que no son para nada realistas tal y como las tengo ahora mismo, en el mismo post me pusieron este ejemplo: 

http://www.comunidadgm.org/index.php?topic=4277.0

y le he intentado probar de mil formas, pero no hay manera, no me funciona, y me gustaria por tanto que me hechara alguien una mano, basicamente lo que pido es que segun el angulo con el que choca tiene mas o menos friccion contra ese objeto por lo que se baja mas o menos la velocidad y si se da de frente que rebote con mas o menos fuerza, se que es un tema que no esta facil por que las fisicas de coches en gm por lo que he buscado no estan muy evolucionadas, pero aunque fuera una cosa algo mas basica lo agradeceria jeje.

Muchas gracias y un saludo!
Título: Re: colision de un coche
Publicado por: metalfox6383 en Diciembre 07, 2009, 12:40:17 AM
Aqu? te mando un ejemplo adjunto. No es tan realista como estoy seguro que quieres conseguir, pero servir? para empezar.

Para un comportamiento realista de un auto hay que tener mucho conocimiento de f?sica, din?mica en s?. Conocer vectores y saber descomponerlos. Mientras m?s realismo quieras, el c?digo ser? mayor. Suerte.
Título: Re: colision de un coche
Publicado por: knd144 en Diciembre 07, 2009, 08:57:38 PM
Bueno, no me he podido descargar el ejemplo por que no tengo el GM a la mano, pero te puedo ayudar un poco con la din?mica de direccion del auto al colisionar, creo  :-[ :

a ver...

primero necesitamos definir la resistencia del objeto a colisionar (que va a ser la fuerza que este opondr?).
Suponemos que el objeto edificio tiene una resistencia de 30. entonces en el objeto edificio definimos la variable en create:

Citarf=30 //pongo f por que para mi es mas facil recordar la f que resistencia  XD

ahora en el evento colisi?n del auto con el edificio:

Citar
direction= ((obj_edificio.f Cospoint_direction(obj_edificio.x,obj_edificio.y,x,y)) + (-1(obj_edificio.fSenpoint_direction(obj_edificio.x,obj_edificio.y,x,y)) + (speedCospoint_direction(obj_edificio.x,obj_edificio.y,x,y)) ) + (speedsenpoint_direction(obj_edificio.x,obj_edificio.y,x,y)) ))


Te explico el funcionamiento de este chorizote de c?digo:
simple, saca el vector final del auto al chocar (considera que el vector representa la direcci?n) considerando la velocidad y direcci?n del auto con la direcci?n (tomando en cuenta el punto 0 el edificio . Aun que esto es en teor?a por que jam?s lo habia intentado hacer, dejame checar mis apuntes de f?sica y ver? si le puedo agregar o modificar algo. Igual me parece muy ambiguo y tendr? que modificarlo, pero pruebalo si quieres y me dices que problemas tiene  :-[

Aun que creo (mas no estoy muy seguro) de que la parte: point_direction(obj_edificio.x,obj_edificio.y,x,y) podria darte problemas al haber varios objetos obj_edificios, as? que intentalo con un other.x o algo as?.

;)
Título: Re: colision de un coche
Publicado por: Xuturk en Diciembre 08, 2009, 12:37:07 PM
Hola jeje ya he vuelto, lo siento por tardar en volver por aqui pero he andado liado jeje, a ver os comento, lo primero daros las gracias por vuestro tiempo  para ayudarme.

Ahora voy primero con el ejemplo del coche, esta genial, es exactamente lo que pido al chocar con la parez pero tengo un problema, y es que claro, con cuadrados funciona perfectamente, alguna vez se traba per muy contadas, pero con el dibujo de un coche no se por que pero funciona mal, a veces se traba, y la imagen se cambia de angulo como quiere al colisionar y demas jeje, he probado a ponerle una mask igual de tama?o que el coche pero nada, sigue igual, asi que a ver si consigo algo pero lo veo dificil :(

Lo que me comentas knd144, tambien lo necesito jeje por que me interesa mucho lo del rebote y en el ejemplo de metalfox no esta, pero lo he puesto asi como decias y nada Cospoint no lo reconoce el compilador y claro buscaria una alternativa en codigo pero tampoco se exactamente lo que hace por que de fisica andao fatal la verdad xD, asi que te agradeceria que como has dicho si miras lo sapuntes o lo que sea tambien me lo dijeras por que me viene muy bien, jeje a ver si consigo hacerlo funcionar que no me da nada mas que problemas jeje.

Un abrazo y muchisimas gracias a los dos :)
Título: Re: colision de un coche
Publicado por: knd144 en Diciembre 08, 2009, 03:58:07 PM
xuturk, por ahora no te fijes en el c?digo; no se que me fum? ayer que comet? un error grueso  :-[ .

el COS point_colision.... es sacar el coseno de la funcion point_colision(....) . Siento nop haberme explicado.

Pero como dije, por ahora no le mires bien que veo en primera 1 error adem?s de que no es muy espec?fico, y bueno cuando haga una funci?n coherente te la envio por MP que no creo me tarde mas de 1 d?a en resolverlo (lo que pasa es q por ahora no tengo 1 d?a de tiempo  XD ), espero y no te hurga mucho.

SALUDOS  ;)
Título: Re: colision de un coche
Publicado por: Xuturk en Diciembre 08, 2009, 04:55:59 PM
Muchisimas gracias por la dedicacion jeje, tu tranquilo, no tengas prisa que puedo ir haciendo muchas mas partes de mi juego antes que esa, cuando tengas tiempo me la envias jeje no tengas prisa.

Muchas gracias otra vez ^^!