Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: J.E.A en Junio 20, 2012, 03:02:29 AM

Título: Que mi personaje deje de moverse al estar en el aire segun como salte (Solucion)
Publicado por: J.E.A en Junio 20, 2012, 03:02:29 AM
Quisiera hacer que mi personaje al estar en el aire deje de moverse segun como salte. Por ejemplo: Mientras presiono el boton de caminar para la derecha camina, y mientras camina al presionar el boton de salto salta. Eso esta bien. Pero quisiera que si mi personaje esta quieto y el primer boton que presiono sea el de salto, al momento de estar en el aire quisiera que no respondan los botones de movimiento.

Probe esto en Step poniendo esto

if place_free(x,y+2)
x+=0



Pero no me funciono  :-[
Título: Re:Que mi personaje deje de moverse al estar en el aire segun como salte
Publicado por: elviskelley en Junio 20, 2012, 02:54:54 PM
eso es facil de hacer solo creas una variable para el movimiento del aire, y debes verificar en las teclas de movimiento que solo se mueve si esta sobre algo, asi no responden cuando esta en el aire, y verificas que si esta en el aire y la variable es tal... valor se mueve en esa direccion-.
Ejemplo.
event create
dirair=false; //cuando sea true se movera a la derecha y false a la izquierda claro solo en el aire.
Event end step
if place_free(x,y+)
{
if !dirair
{x-=3;}
else
{x+=3;}
}
//listo asi se movera en el aire en esa direccion, y para evitar cambien la direccion con las teclas de movimiento.

event left suponiendo usas left y right del teclado de flechas o cambia el event po lo que usas.
if !place_free(x,y+1) and place_free(x+3,y) //como ves lo unico que hago es agregar !place_free(x,y+1)
{x+=3;}
Ya creo que podes entender la idea.
Título: Re:Que mi personaje deje de moverse al estar en el aire segun como salte
Publicado por: J.E.A en Junio 22, 2012, 11:16:54 PM
Cita de: elviskelley en Junio 20, 2012, 02:54:54 PM
eso es facil de hacer solo creas una variable para el movimiento del aire, y debes verificar en las teclas de movimiento que solo se mueve si esta sobre algo, asi no responden cuando esta en el aire, y verificas que si esta en el aire y la variable es tal... valor se mueve en esa direccion-.
Ejemplo.
event create
dirair=false; //cuando sea true se movera a la derecha y false a la izquierda claro solo en el aire.
Event end step
if place_free(x,y+)
{
if !dirair
{x-=3;}
else
{x+=3;}
}
//listo asi se movera en el aire en esa direccion, y para evitar cambien la direccion con las teclas de movimiento.

event left suponiendo usas left y right del teclado de flechas o cambia el event po lo que usas.
if !place_free(x,y+1) and place_free(x+3,y) //como ves lo unico que hago es agregar !place_free(x,y+1)
{x+=3;}
Ya creo que podes entender la idea.

Gracias!  8) Era eso lo que quería