Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: MaanuRP en Mayo 29, 2012, 07:38:06 AM

Título: Problema con doble salto (Y cualquier agregado de vspeed)
Publicado por: MaanuRP en Mayo 29, 2012, 07:38:06 AM
Hola a todos!

Haciendo un juego de plataformas me encontre con un bug bastante feo para la jugabilidad y que da errores a la hora de los cambios del sprite.

Cuando le quiero hacer un doble salto, un trampolin, o el tipico "saltito" que hace al pegarle en la cabeza a un enemigo (Al estilo Mario Bros), el personaje genera un "rebote" cuando cae al suelo.

El error mas que todo se da cuando el personaje esta cerca de tocar el piso (o ya con la vspeed por encima de 0) y se usa el doble salto (O se hace rebotar sobre un enemigo o un trampolin), cuando cae, se genera ese rebote.

Para que vean, les dejo un editable donde solo tiene la colision con el suelo, la gravedad, y el movimiento (izquierda, derecha, salto y doble salto)

Espero que me puedan ayudar!

Desde ya, muchisimas gracias!

Saludos!
Título: Re:Problema con doble salto (Y cualquier agregado de vspeed)
Publicado por: FrogGer en Mayo 29, 2012, 08:58:56 AM
  Te adjunto el engine corregido. El unico cambio que le hice fue mejorar el evento colision con piso del objeto principal. La idea es que al chocar con el pregunte "Si el saltador estaba cayendo y no tiene espacio libre hacia abajo, entonces que se mueva hasta hacer contacto con algo sólido hacia abajo". Me salió medio enredado :P
  Y listo, funciona :)
Título: Re:Problema con doble salto (Y cualquier agregado de vspeed)
Publicado por: MaanuRP en Mayo 29, 2012, 03:57:47 PM
Que simple que era ^^

Ahora tengo que ver si lo puedo adaptar a mi juego.

Lo que si, no entendi porque poniendo esa colision si funciona, me lo podrias explicar?
Título: Re:Problema con doble salto (Y cualquier agregado de vspeed)
Publicado por: FrogGer en Mayo 29, 2012, 11:39:05 PM
 Para mi igual es medio dificil de entender y no se muy bien porque ocurre, pero es algo menos así: Mientras más velocidad tenga un objeto, más problemas tiene Game Maker con las colisiones. En este caso detecta unos pixeles antes de caer la colision con piso y vuelve la vspeed del personaje a 0, pero como aun falta algo para llegar al suelo, la gravedad hace su funcion y vuelve a caer nuevamente.
   Para que no suceda eso, cuando GM detecte erroneamente la colision antes de tiempo, en vez de que la vspeed se vuelva 0, le decimos que se mueva hacia abajo hasta encontrar un solido, y luego que la vspeed sea 0.
   Espero te haya quedado más claro.
Título: Re:Problema con doble salto (Y cualquier agregado de vspeed)
Publicado por: MaanuRP en Mayo 30, 2012, 01:46:35 AM
Todo entendido entonces, muchisimas gracias FrogGer!