Pistolas e metralhadoras são fáceis - você pode simplesmente ter balas voando em uma determinada direção, então eu já implementei isso. Uma espingarda, por outro lado, causa dano a qualquer coisa em uma determinada área que se parece com um cone. Como devo implementar isso? Tenho algumas sugestões aqui, mas posso usar alguns conselhos:
- Divida uma bala em várias pequenas balas, que causam menos danos por si mesmas, mas voam em uma direção semelhante (é mais provável que um inimigo mais próximo seja atingido)
- Não use balas - basta ter um efeito de partícula de uma espingarda e calcular quanto dano os inimigos recebem com base na posição / orientação, etc.
- Tenha uma grande bala invisível (um cubo, por exemplo) que danifique as coisas, bem como um efeito de partícula que fará com que pareça uma bala de espingarda.
Desde já, obrigado!
Respostas:
A maioria dos jogos implementa espingardas como uma arma que dispara vários projéteis ao mesmo tempo, mas cada um com uma certa aleatorização do ângulo que eles deixam para o ator. Na maioria dos atiradores em primeira pessoa modernos, quase todas as armas têm uma certa extensão para cada tiro que eles disparam, para torná-los menos precisos a longo alcance, de modo que a mesma implementação pode ser usada para espingardas.
Implementação simples: quando você deseja um spread de 10 ° e o jogador olha na direção 0 ° vertical e 50 ° horizontal, os projéteis os deixariam em um ângulo entre -5 ° e + 5 ° vertical e entre 45 ° e 55 ° horizontal.
Melhor implementação: Espalhe os projéteis não em uma área retangular, mas em uma área circular ao redor da mira do jogador.
A eficiência reduzida percebida em longo alcance resulta da propagação dos projéteis, o que significa que alvos distantes e pequenos não serão atingidos por todos eles. Quando você gostaria de enfatizar ainda mais isso para tornar sua espingarda uma arma pura de curto alcance, você também pode reduzir o dano de cada projétil para cada quadro de lógica de jogo que ele percorrer.
Nos atiradores de cima para baixo ou com rolagem lateral, é menos comum se espalhar por todas as armas, porque a área de jogo é muito pequena para que isso faça sentido, mas quando você quer uma arma como uma espingarda, isso é uma questão diferente e a mesma coisa técnica pode ser usada, apenas para que você não precise se preocupar com a terceira dimensão. Como alternativa, você pode disparar os projéteis em ângulos fixos, como -6 °, -4 °, -2 °, 0 °, 2 °, 4 °, 6 °. Em um contexto 2D, ele não parecerá tão artificial quanto em um contexto 3D e o jogador de desafios gostará, porque reduz o acaso.
fonte