Técnicas de Pulo

O Pulo Simples

Bom... Existem várias técnicas que nos permitem fazer isso! Utilizaremos aqui uma muito comum e bem fácil de implementar, conhecida como Ray Casting. Na verdade, como estamos em 2D e também pela maneira que utilizaremos a técnica, a chamaremos de Line Casting.

A técnica de Line Casting consiste em definir um ponto de origem e um ponto de destino entre os quais traçaremos uma linha, a fim de detectar qualquer objeto que essa linha cruze. Caso ela passe por um objeto qualquer, significa que esse objeto está definido entre os pontos. E como utilizaremos isso para que o personagem detecte o chão? Simples! Criaremos um ponto o qual ficará um pouco abaixo do personagem e traçaremos essa linha entre o centro do personagem e esse ponto um pouco abaixo. Caso encontremos chão no caminho, o personagem está sobre o chão! Vejamos na Figura 6 como exatamente acontecerá.

Linha amarela representando o Line Casting entre o centro do personagem e o círculo branco que está logo abaixo dele.

Obviamente não precisamos que o ponto branco seja visível, mas, para efeitos didáticos, o adicionamos na imagem. Esse ponto branco vai representar o elemento chamado de "groundCheck". Esse elemento serve como ponto final para a linha e também define o limite no qual o personagem será considerado em contato com o chão. Uma vez definido esse ponto, podemos simplesmente traçar essa linha amarela (que na verdade não existe, está apenas ilustrada para que vocês entendam melhor) para saber se, em algum ponto dela, há contato com o chão. Caso sim, o personagem está no chão e apto a pular. Conseguiu entender?

Resumindo: define-se um ponto abaixo do personagem (ponto branco), lança-se uma linha entre esse ponto e o centro do personagem (linha amarela) e verifica se em algum momento essa linha toca um objeto que está na camada "Ground". Se sim, o personagem está no chão e apto a pular. Ok? Entenda bem isso antes de passarmos adiante para o código e adição desse ponto ao nosso jogo!

Versão 5.3 - Todos os Direitos reservados