Página 1 de 1

Como fazer o personagem parar ao soltar um tecla?

Enviado: Seg Mai 04, 2020 8:15 am
por Autumnkun
Como Faço Para o Personagem Parar Apos Ele Não Apertar Mais Um Botão, Sou Novato Preciso De Ajuda No Meu Segundo Jogo, Uso GM 1.4

Re: Re: Ajuda,Movimentação

Enviado: Seg Mai 04, 2020 1:28 pm
por Rodrigo_GM
Olá, há varias maneiras fazer isso, mas não sei como está seu código. então vou tentar ajudar dessa maneira.

Pense assim! Se eu apertar o botão, ele move. ok? Agora se o botão não tiver apertado, ele não mover! Mas como colocar em código? é bem simples.
O Código, ou melhor a estrutura condicional  if no Gamemaker representar literalmente "Se".
Um exemplo: "Se" eu estive apertado o botão, eu faço algo..

Código: Selecionar todos

if (keyboard_check(vk_left)){ x-=2;}
No código acima, podemos entender assim. Se eu estiver apertando o botão, movo 2 pixels para esquerda. Sempre que o SE for verdadeiro ele faz a ação. Se não estive apertando o botão ele não vai se mover. No seu caso talvez vc esteja usando hspeed em seu codigo. O hspeed representar velocidade horizontal.velocidade que vai da esquerda como -1 e para direita como +1.

Código: Selecionar todos

if (keyboard_check(vk_left)){ hspeed=-2};
O play irar se mover mas não vai parar. ele não vai parar, mas porque não para? simplesmente porque vc disse que a velocidade é hspeed=-2, mas não disse quando o hspeed voltara para 0, para corrigir isso basta fazer assim

Código: Selecionar todos

if (keyboard_check(vk_left)){ hspeed=-2}
    else  {    hspeed=0    }
O Código, ou melhor a estrutura condicional Else, é bem interessante. pode ate se entendida como se não.
Um exemplo: "Se" eu estive apertado o botão, eu faço algo., Mas se não estive apertando o botão, faço algo diferente.

Mas se vc tentar fazer do mesmo jeito para ir para o outro lado, não vai da certo. porque sempre que vc n apertar o botão para esquerda o hspeed vai ser 0. para corrigir isso basta fazer assim.

Código: Selecionar todos

if (keyboard_check(vk_left)){ hspeed=-2}
    else  {    
        if (keyboard_check(vk_right)){hspeed=2}
            else {hspeed=0}   
          }
Esse vou deixa para vc entender sozinho.

veja esses tutoriais do Alex que vai te ajuda muito, ele explica muito melhor e tem video lá Video aulas game maker