Sua aproximação basicamente determina que os tiros aterrissem em uma parte da superfície de uma esfera, determinada pelo ângulo; a área alvo dentro dessa superfície é uma constante; a distribuição de probabilidade é constante dentro da superfície e zero em outro lugar.
A Gajet já deu uma série de boas razões pelas quais algumas dessas suposições caem, mas mantém o mesmo modelo de imprecisão: um erro limitado no ângulo. O resultado ainda cai com r ^ -2, mas com uma pequena constante.
Digamos que o atirador tenha um spread máximo de 5 °. Ele tem chance de disparar entre um erro de 0 ° e 1 °, mas a área do anel entre 4 ° e 5 ° é muito maior que a área do anel / círculo entre 0 ° e 1 °. Erros maiores têm uma probabilidade maior de ocorrer. Aumente ainda mais o erro e a probabilidade cai repentinamente para zero, porque estamos fora do limite de cinco graus. Isso não parece muito realista.
A representação mais precisa seria ter uma distribuição guassian de erro angular, ou seja: A(ϕ) = sqrt(a/π) exp(-a ϕ²). A variável a pode ser usada para incluir a habilidade do atirador, etc. Observe que esta solução é unidimensional. Se o seu alvo for muito alto em comparação à sua largura, você poderá omitir o erro vertical completamente e apenas assumir que o tiro foi acertado na elevação correta. Como alternativa, você pode executar o cálculo duas vezes e multiplicar o resultado, assumindo que o destino seja aproximadamente retangular.
Para obter a partir da função de probabilidade para a probabilidade real de atingir um alvo, nós integramos a função A e acabar com uma função de erro caro - o que é realmente chamado a função de erro: p(ϕ) = erf(ϕ sqrt(a)). O ângulo ϕ é igual ao ângulo entre o ponto alvo e a aresta do alvo. Em termos de tamanho do alvo e distância r: p(r) = erf(arctan(s/2r) sqrt(a)). Esta função é plotada abaixo para uma meta de tamanho 1 e valores de precisão de a=2e a=10.

Observe que, diferentemente de uma queda de r ^ -2, a probabilidade permanece abaixo de uma, não importa o quão perto o alvo esteja. De fato, mesmo um alvo a uma distância exatamente zero pode ser perdido, devido à probabilidade extremamente pequena de que o erro seja superior a 90 °.
Como eu disse antes, a função de erro é bastante cara, mas seu argumento ϕ sqrt(a)não varia muito para qualquer cenário sensato de atirador. Podemos fazer muito melhor avaliando parte da série Taylor e limitando o resultado. Primeiro, mapear x = arctan(s/2r) sqrt(a), em seguida, avaliar: 2 x - (2/3) x^3 + (1/5) x^5 .... Omita ou adicione quantos termos forem considerados necessários, mas lembre-se de que um número par de termos causará comportamentos indesejados a distâncias baixas. A plotagem abaixo é a função de erro real, em comparação com os três primeiros termos diferentes de zero de sua série Taylor.

Como nota final, isso é puramente matemática. Execute algumas funções senoidais, coeficientes aleatórios e logaritmos, e seu jogo pode ser igualmente divertido.