Cursos / Jogos Digitais / Desenvolvimento com Motores de Jogos I / Aula
Vejamos o código da Listagem 4.
Listagem 4 - Adicionando o pulo duplo ao personagem.Conforme observado, as modificações não são muitas, dessa vez. Criamos duas novas variáveis booleanas para lidar com o pulo duplo. São elas: doubleJump e doubleJumping. A primeira, indica se o personagem pode executar o segundo pulo ou não. A segunda indica se ele tentou executar esse pulo.
A lógica utilizada, como dito anteriormente, permanece a mesma. No update, vemos se o personagem está no chão e se o botão de pulo foi pressionado. Caso sim, avisamos o pulo ao FixedUpdate com a variável jumping e também ativamos a habilidade de executar um segundo pulo (doubleJump = true). Caso a tecla tenha sido pressionada quando o personagem não está no chão e pode dar um pulo duplo, avisamos ao FixedUpdate que ocorrerá um pulo duplo.
Já no FixedUpdate, verificamos duas alternativas e não mais uma apenas. Se o caso for de Jumping, adicionamos uma velocidade vertical ao nosso personagem e retiramos o pulo. Caso seja de DoubleJumping, além de adicionar uma velocidade ao nosso personagem e tirar o pulo duplo, zeramos a velocidade dele em Y antes de adicionar essa força. Fazemos isso justamente para que o personagem possa subir, caso já esteja caindo, uma vez que, se a velocidade não fosse zerada antes do pulo ser ativado, ela apenas agiria contra a gravidade por um instante, diminuindo a velocidade de queda evitando jogar o personagem para cima novamente.
Às vezes esse pode ser o comportamento desejado, por exemplo se tentarmos fazer um jogo no qual o personagem fica flutuando com pulos (Flappy Bird). Nesses casos, podemos retirar essa linha onde a velocidade é zerada e simplesmente adicionar a força normalmente.
Bem legal, não acha? Espero que todos tenham entendido e possam adicionar isso ao jogo sem maiores problemas. Qualquer dúvida, convido-os mais uma vez a discutir no fórum!
Versão 5.3 - Todos os Direitos reservados