Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: J.E.A en Julio 05, 2010, 10:07:30 PM

Título: Colision de objeto
Publicado por: J.E.A en Julio 05, 2010, 10:07:30 PM
Vuelvo a hacer otra pregunta ahora porque ya muchos se van a dormir. Como puedo hacer que un objeto cuando colisiona con otro vuelva para la otra direccion por ejemplo un bloque. quiero que si hay 2 bloques distanciados y el objeto en el medio que se mueve pero al chocar tiene que volver como si pusiera hspeed. Pero quiero algo mas preciso porque si el objeto cayera de arriba y cayera sobre el bloque se queda como trabado, no me serviria. Habria que poner unas expresiones? cuales serian? ??? Prometo que es la ultima pregunta simple pero la verdad que me cuesta. Cualquier cosa lo adjunto
Título: Re: Colision de objeto
Publicado por: 3dgeminis en Julio 05, 2010, 10:19:07 PM
Busca la funcion move_bounce
Título: Re: Colision de objeto
Publicado por: J.E.A en Julio 05, 2010, 10:46:25 PM
Veo que no aclare bien me refiero a un objeto como el hongo de mario, cuando choca con una pared que vuelva, pero si cae desde arriba sobre el bloque tendria que seguir su curso y no trabarse ni cambiar de direccion al caer sobre el bloque, por eso el hspeed no me sirve. Obviamente habran visto en el juego original si el hongo cae sobre cualquier lugar cae sobre el piso o lo que fuere y sobre un escalon, no cambia de direccion de forma erronea. Ojala lo haya explicado bien
Título: Re: Colision de objeto
Publicado por: brunoxzx en Julio 06, 2010, 12:05:20 AM
pues si busca la funcion move_bounce pero para que no te complique en la carpeta en la que instalaste game maker biene un ejemplo de eso creo que se llama "tutorial1"
Título: Re: Colision de objeto
Publicado por: J.E.A en Julio 06, 2010, 12:22:00 AM
Pero eso sirve tambien para que un objeto tambien se mueva horizontalmente?
Título: Re: Colision de objeto
Publicado por: brunoxzx en Julio 06, 2010, 12:26:17 AM
si busca el ejemplo que te dije.
Título: Re: Colision de objeto
Publicado por: Ruisu~ en Julio 06, 2010, 12:26:37 AM
utiliza hspeed y vspeed, pero no drjes que la vspeed sea menor que cero ni que "abs(hspeed)"sea menor que la velocidad horizontal deseada... usas...
if abs(hspeed)!=4 hspeed=sign(hspeed)*4

if vspeed<=0 vspeed=0

de esa manera la velocidad horizontal no deja de ser 4 ni -4 y la vspeed no puede ser menor que cero y puedes usar move_bounce y condiciones de gravedad normal