Conectar-se
Quem está conectado
28 usuários online :: 4 usuários cadastrados, Nenhum Invisível e 24 Visitantes

CRP-Max, Katerp, rafaelviodres1, Willy

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 10/05/2010
Número de Mensagens : 62
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

Ajuda com movimentação por teclas

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=
avatar
Ranking : Sem avaliações
Notas recebidas : B
Data de inscrição : 28/02/2012
Número de Mensagens : 1908
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 1

Prêmios
   : 2
   : 2
   : 1
Ver perfil do usuáriohttp://guitarmester.no.comunidades.net/index.php?pagina=19362978

Re: Ajuda com movimentação por teclas

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.
avatar
Data de inscrição : 10/05/2010
Número de Mensagens : 62
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

Re: Ajuda com movimentação por teclas

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 =/
avatar
Data de inscrição : 09/05/2013
Número de Mensagens : 13
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.youtube.com/xShadoowgun

Re: Ajuda com movimentação por teclas

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...
avatar
Data de inscrição : 10/05/2010
Número de Mensagens : 62
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

Re: Ajuda com movimentação por teclas

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 =)
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