Hola makeros... tengo una duda... estoy haciendo un juego en el cual te mueves en 4 direcciones... lo que necesito saber es como hacer para que cuando se este moviendo hacia arriba no pueda bajar (que la tecla "abajo" no responda), que cuando este moviendose hacia la derecha no pueda ir a la izquierda... tal vez hayan ejemplos de esto... pero no se me ocurre con que nombre buscarlos...
De antemano muchas gracia y que tengan un buen dia...

Bueno, algo muy facil seria probar que no se este presionando dicha tecla como p.ej:

[gml]if !keyboard_check(vk_down)
{y-=1}[/gml]

o tambien probando las direcciones:

[gml]if ! direction=270
{direction=90}[/gml]

usa else if, asi los haces mutuamente excluyentes

[gml]
if(keyboard_check(vk_up))
//codigo para moverse a la derecha
else if(keyboard_check(vk_down))
//codigo para moverse a la izquierda

if(keyboard_check(vk_left))
//codigo para moverse a la izquierda
else if(keyboard_check(vk_right))
//codigo para moverse a la derecha

[/gml]

saludos  ;D
"Si he llegado a ver más lejos que otros, es porque me subí a hombros de gigantes"  Isaac Newton

ok entiendo lo que pides, pero debe haber un momento en el que puedas cambiar de direccion. asi que lo colocare en una alarm y tu decides cuando usarlo.

preferi no pegar codigo te dejo el ejemplo adjunto.

Emmm... emmm... emmm... slampdesign, no entendi donde y cuando debo poner ese codigo (ignorancia mia...)...
licshendu, por mas que intento poner el codigo... no me resulta... o tal vez me falta algo (tambien ignorancia mia...)
elviskelley, emmm... no se si tal vez me explique mal, pero lo que intento hacer es un movimiento tipo Snake (el juego de la serpiente), pero igual gracias...
Gracias por responder, y que tengan un buen dia...

si queres hacer un snake, esto puede servirte  :-[
ponelo en un objeto cualquiera, y tendria que hacer el movimiento de forma tan que no pueda volver sobre si misma.

evento step:
[gml]speed = 5;

if(keyboard_check(vk_left) = true) and (direction != 0)
{
direction = 180;
}

if(keyboard_check(vk_right) = true) and (direction != 180)
{
direction = 0;
}

if(keyboard_check(vk_up) = true) and (direction != 270)
{
direction = 90;
}

if(keyboard_check(vk_down) = true) and (direction != 90)
{
direction = 270;
}[/gml]

#6 Junio 21, 2011, 10:06:14 PM Ultima modificación: Junio 21, 2011, 10:24:03 PM por elviskelley
no lo sabia, bueno ya ge te dio la respuesta.
:-C, jejeje

Oh... Gracias Ge... eso era justamente lo que necesitaba... +1 por la ayuda... elviskelley, no te preocupes... solo fui yo, que no me explique bien... muchas gracias por responder, doy por solucionada la pregunta... que tengan un buen dia...