Hola gente, estoy haciendo un juego de plataformas y hay algo que me molesta para lo que es mi juego.
Seguramente sabrán que en la mayoría de juegos de plataformas, cuando se salta, es posible seguir moviendo al personaje mientras esta en el aire. Para lo que es mi juego, necesito que eso no ocurra, es decir, que el personaje salte, pero mientras esta en el aire al presionar la tecla left o right, no se mueva.
Trate utilizando en el evento steep
if vspeed <0
{
hspeed=0
}
Es decir, si la velocidad vertical speed es menor a cero, la velocidad hspeed será igual a cero, pero no me funciona.
Crea una variable que indique que el personaje está tocando el piso
[gml]piso = not place_free( x, y+1 ); [/gml]
Y en los eventos de las flechas pon como condición esa variable:
[gml]//Evento Left
if( piso ) {/*mover a la izquierda*/}[/gml]
[gml]//Eveto Right
if( piso ) {/*mover a la derecha*/}[/gml]
[gml]//Evento Press Up
if( piso ) {/*saltar*/}[/gml]
O puedes usar una variable que indique que está en el aire
[gml]aire = place_free( x, y+1 ); [/gml]
invirtiendo la condición en los eventos de las flechas
Una pregunta de novato con respecto a la vspeed.
La vspeed cambia de positivo a negativo cuando va hacia arriba o abajo?
Lo mismo la comprobación debería ser
if vspeed <>0
{
hspeed=0
}