Avatar do usuário
Autumnkun
Novato
Novato
Autor
Mensagens: 2
Registrado em: Seg Mai 04, 2020 8:06 am
Karma: 1

Como fazer o personagem parar ao soltar um tecla?

Seg Mai 04, 2020 8:15 am

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
 
Avatar do usuário
Rodrigo_GM
Membro
Membro
Mensagens: 22
Registrado em: Dom Set 03, 2017 12:30 pm
Karma: 28

Re: Re: Ajuda,Movimentação

Seg Mai 04, 2020 1:28 pm

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..

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.
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
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.
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