O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

"Loop" na opção de pressinar teclas

Iniciado por Kieran Harris, 12/11/2014 às 21:13

Esse é um problema recorrente no RPG Maker, eu tenho um evento comum em que um personagem faz uma certa ação ao pressinar a tecla Z, só que se o jogador mantiver essa tecla pressionada o personagem vai continuar fazendo essa ação num loop infinito, eu queria que ele precisasse tirar o dedo do botão para assim depois o personagem poder a ação de novo caso a tecla seja pressionada, existe algum jeito de resolver isso por eventos ou o único jeito seria com um script?

Tentar usa como condição os comandos por script

Input.trigger?(:letra) - Evento acontece quando a tecla é pressionada 1 vez.

Input.press?(:letra) - Evento acontece enquanto a tecla estiver pressionada.


Espero ter ajudado

Hmm... tenta algo por switches, tipo um switch liga o evento comum em processo paralelo que realiza a ação, e outro evento comum faz com a condição que ao apertar o Z aquele switch seja ligado. Aí no final do switch da ação coloca pra deixar ele em off, assim ele só seria ligado ao apertar novamente o Z.

Não testei aqui e estou pelo celular, mas teoricamente deve funcionar.

12/11/2014 às 22:13 #3 Última edição: 12/11/2014 às 22:14 por Cronus
Bem, talvez a solução do Allan Dsr seja bem mais prática, mas de qualquer forma fica aqui outra alternativa bem simples:



Basicamente, você cria uma switch e ativa ela quando aperta a tecla. No else, coloca pra desativar. É importante ter a condição da switch dentro da condição de apertar tecla pra certificar de que a ação só vai ser realizada uma vez, então assim que a switch é ligada a ação não se repete até que o jogador solte a tecla e aperte de novo. Você pode também botar um wait ali antes de ligar a switch se quiser adicionar um delay pro jogador não apertar várias vezes seguidas.

Citação de: Uhtred online 12/11/2014 às 21:20
Hmm... tenta algo por switches, tipo um switch liga o evento comum em processo paralelo que realiza a ação, e outro evento comum faz com a condição que ao apertar o Z aquele switch seja ligado. Aí no final do switch da ação coloca pra deixar ele em off, assim ele só seria ligado ao apertar novamente o Z.

Não testei aqui e estou pelo celular, mas teoricamente deve funcionar.
Citação de: Cronus online 12/11/2014 às 22:13
Bem, talvez a solução do Allan Dsr seja bem mais prática, mas de qualquer forma fica aqui outra alternativa bem simples:



Basicamente, você cria uma switch e ativa ela quando aperta a tecla. No else, coloca pra desativar. É importante ter a condição da switch dentro da condição de apertar tecla pra certificar de que a ação só vai ser realizada uma vez, então assim que a switch é ligada a ação não se repete até que o jogador solte a tecla e aperte de novo. Você pode também botar um wait ali antes de ligar a switch se quiser adicionar um delay pro jogador não apertar várias vezes seguidas.

É eu fiz algo tipo assim.
Quando o evento começa a ação ele cria uma switch que desativa tal ação, e ela só é ativada de novo quando o jogador tira o dedo da tela.
Eu tô meio cansado pra explicar mas foi algo do tipo


Bom, obrigado a todos pela ajuda!