Ajuda com movimentação por teclas

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Ajuda com movimentação por teclas

Mensagem por Furious God em Sab 17 Ago 2013, 18:16

Olá, eu queria fazer um sistema de seleção que se movimenta pelas teclas W,A,S e D, mas eu queria fazer que enquanto eu estivesse segurando a tecla, ele se movimentasse, no caso, o óbvio era usar o evento Keyboard, que faz isso. O problema é que isso faz com que a seleção se movimente muito rápido, assim sendo impossível mover apenas uma vez. Assim, quis fazer um sistema próprio por código mesmo, que enquanto a tecla, por exemplo, D, estivesse pressionada, ele repetisse os códigos, depois
eu podia acrescentar um timer pra atrasar isso, mas o problema é que NÃO FUNCIONA, ele simplesmente TRAVA, no caso, ele faz uma repetição infinita e trava, mas não era pra fazer uma repetição infinita, não sei por quê ele não para.

STEP:
Código:
while(keyboard_check_pressed(ord('D'))){
    if (global.coluna == global.quant_coluna-1){
        global.coluna = global.quant_coluna-1;    
    } else {
        if(global.blocos_verdes[global.linha,global.coluna] == 1){
            if(global.coluna+2 > global.quant_coluna-1){
            }else{
                global.coluna +=2;
            }    
        }else if(global.blocos_verdes[global.linha,global.coluna] == 3){
            if(global.coluna+2 > global.quant_coluna-1){
            }else{
                global.coluna +=2;
            }    
        }else{
            global.coluna += 1;
        }
    }  
}
Por favor, ajudem D=

Furious God

Número de Mensagens : 62
Idade : 18
Data de inscrição : 10/05/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Ajuda com movimentação por teclas

Mensagem por theguitarmester em Sab 17 Ago 2013, 19:37

Código:
    while(keyboard_check_pressed(ord('D')))...
Explicando o code:
Enquanto D estiver pressionada, acontecer a ação, após acontecer a ação do começo ao fim, checar novamente se D está pressionada, assim sucessivamente, até que D não esteja mais pressionado, e só quando não estiver mais, continuar a executar os outros codes, como a ATUALIZAÇÃO DO ESTADO DO TECLADO.

no seu caso, você deveria usar o if(ao invés do while), aparentemente.

Dê uma explicada em seu código também.

theguitarmester

Ranking : Sem avaliações
Número de Mensagens : 1908
Idade : 21
Data de inscrição : 28/02/2012
Notas recebidas : B
Reputação : 80
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 2
   : 2
   : 1

http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Re: Ajuda com movimentação por teclas

Mensagem por Furious God em Sab 17 Ago 2013, 19:53

theguitarmester, é isso mesmo que você disse, era o que deveria acontecer, só que não acontece, simplesmente trava quando aperto D. Sobre usar o if, ele só anda uma casa e se eu continuar apertando ele não faz nada, só se eu soltar e apertar de novo. O código de dentro do while faz andar dentro de uma matriz bidimensional, daí tem uns esquemas de pular 2 quadrados quando combina uns números, mas isso está funcionando perfeitamente, o problema é nesse maldito while que buga =/

Furious God

Número de Mensagens : 62
Idade : 18
Data de inscrição : 10/05/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Ajuda com movimentação por teclas

Mensagem por xShadoowgun em Sab 17 Ago 2013, 20:06

Isso acontece porque o comando keyboard_check_pressed executa UMA unica ação enquando vc estiver pressionando a tecla, para que a ação seja repedida varias veses vc deve usar o keyboard_check quer executa a ação a cada step que a tecla estiver pressionada. Mais quando vc usar o keyboard_check a seleção irá passar muito rapida, aí vc pode usar o room_speed para diminuir a velocidade da room.
Caso não funcione veja essa engine que eu fiz para vc Happy
Download aqui

Espero ter te ajudado...

xShadoowgun

Número de Mensagens : 13
Idade : 21
Data de inscrição : 09/05/2013
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.youtube.com/xShadoowgun

Voltar ao Topo Ir em baixo

Re: Ajuda com movimentação por teclas

Mensagem por Furious God em Sab 17 Ago 2013, 21:35

Obrigado aos 2 que me reponderam, mas principalmente a você xShadoowgun, deu certo o que você me disse, agora pra ele ir mais devagar vou usar um alarme mesmo, acho que funciona melhor do que a room_speed =)

Furious God

Número de Mensagens : 62
Idade : 18
Data de inscrição : 10/05/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Ajuda com movimentação por teclas

Mensagem por Conteúdo patrocinado Hoje à(s) 22:32


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum