Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: 006 Time en Junio 20, 2011, 11:14:50 PM

Título: (solucionado)Que al moverse en una direccion, no se mueva en la direccion contra
Publicado por: 006 Time en Junio 20, 2011, 11:14:50 PM
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...
Título: Re: Que al moverse en una direccion, no se mueva en la direccion contraria...
Publicado por: slampdesign en Junio 20, 2011, 11:46:34 PM
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]
Título: Re: Que al moverse en una direccion, no se mueva en la direccion contraria...
Publicado por: licshendu en Junio 21, 2011, 03:29:57 PM
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
Título: Re: Que al moverse en una direccion, no se mueva en la direccion contraria...
Publicado por: elviskelley en Junio 21, 2011, 05:43:21 PM
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.
Título: Re: Que al moverse en una direccion, no se mueva en la direccion contraria...
Publicado por: 006 Time en Junio 21, 2011, 09:12:16 PM
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...
Título: Re: Que al moverse en una direccion, no se mueva en la direccion contraria...
Publicado por: Ge en Junio 21, 2011, 09:53:15 PM
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]
Título: Re: Que al moverse en una direccion, no se mueva en la direccion contraria...
Publicado por: elviskelley en Junio 21, 2011, 10:06:14 PM
no lo sabia, bueno ya ge te dio la respuesta.
:-C, jejeje
Título: Re: Que al moverse en una direccion, no se mueva en la direccion contraria...
Publicado por: 006 Time en Junio 22, 2011, 02:46:45 AM
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...