Conectar-se
Quem está conectado
15 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 14 Visitantes

CRP-Max

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 06/03/2015
Número de Mensagens : 28
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

[Resolvido] Travar movimento diagonal

em Qui 26 Mar 2015, 16:21
Bom pessoal, quem puder ajudar, eu preciso de um script que interrompa o movimento diagonal, preciso de um movimento de apenas UP,DOWN,LEFT,RIGHT

if(keyboard_check(vk_left))
{  hspeed=1)  };

Quem puder ajudar vai ser uma boa ;)
avatar
Data de inscrição : 23/03/2014
Número de Mensagens : 211
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 40

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [Resolvido] Travar movimento diagonal

em Qui 26 Mar 2015, 17:01
Não seria usar o keyboard_check_pressed? (que verifica se a tecla foi solta).


Acho que tu só quer isso né? Se for outra coisa, fala Razz!
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 31/01/2014
Número de Mensagens : 64
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 9

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [Resolvido] Travar movimento diagonal

em Qui 26 Mar 2015, 17:26
tenta isso
Código:
if(keyboard_check_direct(vk_left)){
   hspeed =1;
}

se nao der certo essa aqui com certeza dar certo
Código:
if(keyboard_check_pressed(vk_left)){
    hspeed = 1; // se pressionar esquerda anda
}
if(keyboard_check_released(vk_left)){
    hspeed = 0; // se soltar esquerda, para.
}

Cool Laughing
avatar
Ranking : Nota A
Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Número de Mensagens : 1846
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 254

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://willy-gmbr.blogspot.com/

Re: [Resolvido] Travar movimento diagonal

em Qui 26 Mar 2015, 18:25
Basta criar um algorítimo de if-else envolvendo todos os quatro movimentos. Usando else, garantimos que apenas uma das condições será executada, ou seja:

Código:
if (keyboard_check(vk_right)){
   //Movimento para a direita
}else if (keyboard_check(vk_left)){
   //Movimento para a esquerda
}else if (keyboard_check(vk_up)){
   //Movimento para cima
}else if (keyboard_check(vk_down)){
   //Movimento para baixo
}

Não tem segredo. Basta se assegurar que apenas um dos botões será considerado. Importante ressaltar que o "grau de proridade" das teclas é necessariamente a mesma ordem em que você dispôs os códigos, ou seja, de acordo com o codigo acima, se eu segurar vk_left e vk_down, apenas o vk_left será considerado pois ele vem primeiro que o vk_down.

Dúvidas é só falar.
Flws...
blz
avatar
Ranking : Nota C
Notas recebidas : B+C
Data de inscrição : 15/05/2012
Número de Mensagens : 666
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 49

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuário

Re: [Resolvido] Travar movimento diagonal

em Qui 26 Mar 2015, 19:43
Vocês estão esquecendo que ele ta usando hspeed e vspeed, se vc nao parar essas velocidades o char vai continuar andando mesmo sem pressionar a tecla;

Código:
if(keyboard_check(vk_left)){
    vspeed = 0;   
    hspeed = -1;
}

if(keyboard_check(vk_right)){
    vspeed = 0;   
    hspeed = 1;
}

if(keyboard_check(vk_up)){
    vspeed = -1;   
    hspeed = 0;
}

if(keyboard_check(vk_down)){
    vspeed = 1;   
    hspeed = 0;
}

avatar
Data de inscrição : 06/03/2015
Número de Mensagens : 28
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: [Resolvido] Travar movimento diagonal

em Qui 26 Mar 2015, 21:51
Valeu pessoal, e Willy por ter acertado oque eu queria, ta bom que eu deixei bem mal explicado, mas ainda assim conseguil acertar. ty
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum