Como detecto bordas?


18

No meu jogo, eu gostaria que meu personagem fosse capaz de agarrar-se às bordas e de se levantar se houvesse espaço para isso.

Como eu detecto se há uma borda e se o personagem tem espaço suficiente para subir?


Esta pergunta foi criada como uma versão canônica de duas perguntas anteriores. Veja a meta discussão aqui .
Doppelgreener 20/10/12


Respostas:


22

O vídeo do Overgrowth Alpha 132 mostra como eles implementaram a escalada de borda.

O método deles deve funcionar em qualquer mecanismo, mesmo em 2D, em que você usaria um retângulo e um círculo em vez de um cilindro e uma esfera.

Sua detecção de borda envolve duas partes:

Detecção de parede (usando a esfera)

O jogo verifica se o jogador está colidindo com uma parede. Se houver uma parede, pode haver bordas nas quais o jogador possa agarrar. A segunda parte assume a análise das bordas.

Detecção de borda (usando o cilindro)

Se o jogador está em contato com uma parede, um cilindro é arrastado para baixo a uma certa distância acima da posição do jogador até tocar em uma borda. Isso determina três coisas:

  • Se existe uma borda acima do player
  • A altura da borda
  • Se há espaço para o jogador subir na borda, considerando que o cilindro ocupa o mesmo espaço horizontal que o jogador.

Método incrível e exemplo fantástico +1
Bugster 20/10/12

"um cilindro é arrastado para baixo a uma certa distância acima da posição do jogador" Que distância? Isso é muito importante ao lidar com ambientes internos (você cruzaria o teto por acidente).
Tara

11
@Dudeson no passado, usei um raycast para encontrar inicialmente a superfície da borda, antes de acompanhar com uma verificação de volume para verificar se há espaço desobstruído suficiente para subir. Como o raycast é direcional, ele não lê tetos como falsos positivos - embora ainda possa ser preso no próximo andar se a origem for muito alta. As métricas exatas dependerão de muitos detalhes de cada jogo - o tamanho dos caracteres, alcance braço, desembaraço no nível de design, queda velocidades, etc.
DMGregory

@DMGregory Boa ideia com o elenco de raios!
Tara
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.