(solucionado)Que al moverse en una direccion, no se mueva en la direccion contra

Publicado por Biruhan, Junio 20, 2011, 11:14:50 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Biruhan

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...

slampdesign

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]

licshendu

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

elviskelley

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.

Biruhan

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...

Ge

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]

elviskelley

#6
no lo sabia, bueno ya ge te dio la respuesta.
:-C, jejeje

Biruhan

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...

Powered by EzPortal
SMF spam blocked by CleanTalk