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

Bug no Input.repeat...

Iniciado por sc19, 28/03/2020 às 19:59

28/03/2020 às 19:59 Última edição: 29/03/2020 às 12:43 por sc19


Esse sou eu pressionando os botões de seta rapidamente e de forma aleatória, pra ver se a navegação do menu não apresenta nenhum problema. E como podem ver, apresentou.........

Nessa navegação dele, estou usando o Input.repeat nas condições, visto que ele é o mais indicado para sistemas assim. Dentro delas, as switches apenas se alteram e a imagem de cursor praticamente muda de lugar em um sub-evento, baseado nas atual switch do sistema.

Abaixo o processo explicado de forma mais clara:




Preciso que esse erro não ocorra e o sistema flua bem de alguma forma.
Especulo que a movimentação "em cruz" do cursor seja um dos fatores desse problema, visto que ao pressionar da forma que fiz ia bagunçar feio as switches de qualquer jeito.
E não, não estou afim de usar input.trigger e input.press é inviável

28/03/2020 às 22:32 #1 Última edição: 28/03/2020 às 22:37 por Brandt
Ah! O bug não é no Input.repeat haha

O problema é que você está usando eventos pra fazer um menu.
(e errado ainda)




O bug aí acontece quando você liga a switch que ativa o evento de movimento da imagem e isso faz com que ele aconteça de forma paralela (como indica o "Processo Paralelo", ali na ativação). Se você ativar vários eventos desse um em cima do outro, vai acabar que vão todos rodar ao mesmo tempo e brigar para mover a imagem: daí o que você vê acontecendo aí.

Suas alternativas são relocar os comandos de mover picture para o evento principal ou dar outro jeito de só permitir movimento do cursor quando a imagem do cursor parar de se mover (uma switch comum aos eventos de movimento, talvez?).

Isso talvez seja do seu interesse também.
~ Masked

29/03/2020 às 09:35 #2 Última edição: 29/03/2020 às 10:59 por sc19
Citação de: Brandt online 28/03/2020 às 22:32
Ah! O bug não é no Input.repeat haha

O problema é que você está usando eventos pra fazer um menu.
(e errado ainda)




O bug aí acontece quando você liga a switch que ativa o evento de movimento da imagem e isso faz com que ele aconteça de forma paralela (como indica o "Processo Paralelo", ali na ativação). Se você ativar vários eventos desse um em cima do outro, vai acabar que vão todos rodar ao mesmo tempo e brigar para mover a imagem: daí o que você vê acontecendo aí.

Suas alternativas são relocar os comandos de mover picture para o evento principal ou dar outro jeito de só permitir movimento do cursor quando a imagem do cursor parar de se mover (uma switch comum aos eventos de movimento, talvez?).

Isso talvez seja do seu interesse também.

Vou testar esses dois métodos, já tinha pensado no primeiro mas creio que ia tirar a "rapidez" do menu né? Mais tarde falo no que deu, e não me interesso por programação (não o suficiente)

EDIT

creio que consegui, a programação dos eventos mudou bastante



esse recurso me ajudou bastante e só fui conhecer ele agora lol



Especulo que por ele desativar todas as switches do menu, a cada pressionada, essa "briga interna" do cursor é evitada.

Esperar o cursor parar não tiraria a fluidez do menu. Teoricamente se o jogador segurasse o algum botão direcional o cursor se moveria naquela direção sem interrupções. A espera só corrige o possível conflito entre os movimentos.

Vi que você colocou o comando de mover imagem no evento principal, nesse caso não vejo sentido em apagar todas as switches (embora não faça mal, também), porque não tem mais evento paralelo pra mover o cursor, certo?



E não se interessar por programação é uma coisa, ter preguiça de aprender uma linguagem é outra. Alguém que não se interessa por programação não tenta programar um menu.

Eventos envolvem programação também, só que de um jeito pra lá de limitado e ineficiente.
~ Masked

29/03/2020 às 12:41 #4 Última edição: 29/03/2020 às 12:42 por sc19
Citação de: Brandt online 29/03/2020 às 12:17
Esperar o cursor parar não tiraria a fluidez do menu. Teoricamente se o jogador segurasse o algum botão direcional o cursor se moveria naquela direção sem interrupções. A espera só corrige o possível conflito entre os movimentos.

Vi que você colocou o comando de mover imagem no evento principal, nesse caso não vejo sentido em apagar todas as switches (embora não faça mal, também), porque não tem mais evento paralelo pra mover o cursor, certo?

Então, sim, apaguei todos aqueles eventos paralelos, e pelo que pude ver, tanto o batch switch: off, quanto a espera da movimentação da imagem, unidos, evitaram o problema... :sera:

Mexi nas switches para: parar a switch do evento atual, esperar a movimentação do cursor, e ativar a nova switch do novo evento, respectivamente. E dessa forma a navegação roda desse jeito.