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

[AJUDA]Manter Pressionado o botão(?)

Iniciado por Aandel, 15/08/2020 às 19:24

 :coffee:
:facepalm:
Hi pessoal!
Podem me dar um help referente uma duvida que estou tendo se é possível ou se é quase impossível de realizar no Maker MV?
Eu sei que existe a Condição de "ao Pressionar "X" botão"  ser possível fazer algo dento do jogo, mas o que eu queria saber é se tem como controlar o tempo em que esse botão ficará pressionado?
O que eu queria é manter pressionado um botão por 5 segundos e a partir de então algo aconteceria... Não apenas pressionar uma vez...


Sabe aquele sistema do Shadow of Colossus onde mantemos pressionado o botão do controle e um circulo rosa vai diminuindo até o personagem perder as Forças, pois é, eu queria algo justamente ao contrario. :ded:

15/08/2020 às 20:53 #1 Última edição: 16/08/2020 às 15:29 por Crixus
Se for tipo spin attack nos jogos da série Zelda, quando segura a tecla pra carregar e depois de carregado solta pra realizar o ataque ou ação:
Citar
Se:O botão[Cancelar] está pressionado
  ◆Controlar Variáveis:#0001 Carregar += 1
  ◆Se:Carregar = 300
    ◆Comentário:Efeito para confirmar que já carregou a tecla o
    :Comentário:suficiente pra poder executar a ação
    ◆
  :Fim
  ◆
Se Não
  ◆Se:Carregar ≥ 300
    ◆Comentário:Ação após soltar a tecla
    ◆Mostrar Animação:Jogador, Slash Effect
    ◆Comentário:Zerar contador caso concluido
    ◆Controlar Variáveis:#0001 Carregar = 0
    ◆
  :Se Não
    ◆Comentário:Zerar contador caso solte a tecla antes dos 5 segundos
    ◆Controlar Variáveis:#0001 Carregar = 0
    ◆
  :Fim
  ◆
Fim

Opa!
Se eu entendi bem o que você disse, então você pode seguir uma lógica semelhante a essa:

Espero que ajude!

16/08/2020 às 13:12 #3 Última edição: 16/08/2020 às 15:28 por Crixus
Eu me confundi? Não precisa do frame, o giro do evento em processo paralelo já demora 1fps por padrão?

Edit:
Eu analisei, no Rm2k/2k3 a contagem acontecia mais rápido e acabava.

Eu fiz o teste com o seu método e realmente tem que ser usando "=" por que se usar "≥" vai gerar looping e se eu zerar a variavel será redundante e gasto de evento sem necessidade, obrigado brother.

16/08/2020 às 16:36 #4 Última edição: 16/08/2020 às 17:33 por Aandel
Crixus e Eliaquim! Muitooo Muito Agradecido aqui pelo help!
Consegui reproduzir o que vcs mostraram dentro do evento que pretendo.
Está ficando muito legal...  :wow: :wow: :wow: :wow: :wow:

Só mais uma coisinha que achei que funcionaria na parte "Se não" da Condição, porém testei aqui de varias formas e acabei não chegando a lugar nenhum.
O evento que estou criando, trata de mostrar uma imagem circular dentro de uma Hud e essa imagem ela aumenta assim que o botão "ok" for mantido pressionado por 5 segundos.
Se esse tempo não for respeitado, a imagem circular então deveria diminuir e desaparecer.
Porém, no momento, essa imagem ela permanece na tela até concluir o ciclo de 5 segundos só então ela diminui de tamanho e desaparece.
Eu queria então saber se tem como adicionar nesse vento essa possibilidade de caso eu não manter pressionado por 5 segundos a imagem desapareça?
Abaixo esta uma das tentativas de fazer a imagem sumir caso eu não mantenha o botão pressionado... Mas faz com que a imagem pisque na tela... Vlw!!!



[EDIT]Porém testando aqui, verifiquei que dá pra fazer algo legal também, assim que se alcança os 5 segundos do botão pressionado, a imagem circular começa a piscar na tela!
Isso não resolve o "problema" da imagem sumir da tela, mas ainda dá um bom resultado. 

Segue o video do resultado:


:wow: :wow: :wow: :wow: :wow: :wow:


@Crixus
Cara eu fiz esse evento indo dormir, então fiz bem rápido. Mas agora que vi o seu, eu não sei porque não coloquei >=. Eu até fiz outro aqui e usei isso uhahuahuahuaha xD
@Aandel
Eu fiz aqui um evento, foi divertido fazer! Ve se te ajuda.
Imagem
Spoiler
[close]
Video
Quando eu estou com o botão ok pressionado, ele enche a imagem. Quando eu largo o botão, ele espera 5 segundos, e começa a diminuir a imagem. Mas se eu apertar ok de novo, ele continua a encher de onde a imagem parou de diminuir.
Spoiler
[close]
Acho que o vídeo não tá indo, qualquer coisa usa esse link direto.

Ao invés de trabalhar com uma variável, eu trabalhei direto na escala da imagem.
o "++" acrescenta +1 e o "--" -1. Você também poderia usar scaleX += Número.
Eu não sei se esse é o melhor pra você, usar a escala da imagem, porque se for realmente um circulo só com uma cor, então de boa. Mas se tiver algum gráfico, de repente pode ficar distorcido?

Você pode ver que a escala da imagem ultrapassou 100%.
Caso você não queira isso, pode fazer uns cálculos para que não ultrapasse.
Não sei bem, mas de repente assim:
Spoiler
[close]
Só que a imagem não aumenta/diminui tão "clean" quanto o primeiro.
Mas deve ter um cálculo pra fazer isso, tipo:
scaleX = scaleX * (duração + X) / duração
Sei lá, essa parte do cálculo to por fora uahauhauahuahau xD

 :O_O: :O_O: :O_O: :O_O: :O_O:
Cara ficou divinooooo! Muito bom mesmo!
Vou testar aqui e  ver se decido se mantenho como já esta (que o que vcs já fizeram ficou muito top pro meu paladar XDDD) ou se mudo para essa nova versão que está incrível  :wow: :wow: :wow: :wow:... (decisão difícil)  :XD: :XD: :XD: :XD:

Vlw mesmooooooo

16/08/2020 às 21:06 #7 Última edição: 16/08/2020 às 21:10 por Crixus
Citação de: Aandel online 16/08/2020 às 16:36
Só mais uma coisinha que achei que funcionaria na parte "Se não" da Condição, porém testei aqui de varias formas e acabei não chegando a lugar nenhum.
Se o seu RpgMV for em inglês não vai achar mesmo, mas é básico das tutoriais de rpg maker:


Citação de: Aandel online 16/08/2020 às 16:36
... assim que o botão "ok" for mantido pressionado por 5 segundos ...
No primeiro post você disse que era o botão "X", isso me fez entender que era a tecla X do teclado, que corresponde à "Cancelar", mesma usada pra chamar o menu.

Citação de: Aandel online 16/08/2020 às 16:36O evento que estou criando, trata de mostrar uma imagem circular dentro de uma Hud e essa imagem ela aumenta assim que o botão "ok" for mantido pressionado por 5 segundos.
Se esse tempo não for respeitado, a imagem circular então deveria diminuir e desaparecer.
Mesmo procedimento, mas ao invés de zerar a variavel deve negativar.

Citação de: Aandel online 16/08/2020 às 16:36
[EDIT]Porém testando aqui, verifiquei que dá pra fazer algo legal também, assim que se alcança os 5 segundos do botão pressionado, a imagem circular começa a piscar na tela!
Por que você fez um looping dela aparecendo.

Citação de: Eliaquim online 16/08/2020 às 19:17
@Crixus
Cara eu fiz esse evento indo dormir, então fiz bem rápido. Mas agora que vi o seu, eu não sei porque não coloquei >=. Eu até fiz outro aqui e usei isso uhahuahuahuaha xD
Mas eu fiz os testes e como disse, você fez certo, a contagem é pelo FPS do jogo, diferente do Rm2k/2k3 que pra não sobrecarregar e gerar lags tinha que colocar uma "espera". Inclusive eu editei a minha postagem, acho que o cara aí nunca jogou Zelda pra saber o que é Spin Attack, o mesmo método é usado em Megaman onde você segura a tecla de tiro pra poder carrega e dar um tiro muito mais forte.
No seu exemplo tinha que usar "=" por que era na condição ainda segurado, somente na "exceção" que usaria o >=.

Hi Crixius! Amo Zelda... Link of the Past é certamente o meu preferido ( :wow:)
Mas gostei muito do resultado que ficou...
Vlw pessoal! :clap: :clap: :clap: :clap: :clap:

:lock: