Dado um jogador e um inimigo com posição, e dado o vetor de direção de cada um, como posso saber se um pode "ver" o outro?
Em outras palavras, como faço para testar se uma posição com direção está na frente ou atrás de outra posição com direção?
Para meus propósitos, "na frente de" significa diretamente na frente de, ou 90 graus para ambos os lados.
11
Claramente, a solução é criar outra câmera e renderizar novamente a cena do ponto de vista do inimigo, e então executar o reconhecimento de imagem no resultado para o personagem do jogador.
—
Riking
prêmio resposta mais simplista vai para ...
—
OganM
Embora o comentário de Riking provavelmente fosse uma piada, esta é a maneira justa de fazer isso - dando aos NPCs o mesmo acesso ao estado do jogo que um jogador teria, em vez de permitir que eles acessassem o estado interno do jogo.
—
R .. GitHub Pare de ajudar o gelo
@R .. Sim, mas onde você desenha a linha? Levando esse raciocínio ao seu desfecho lógico, NPC está eventualmente tornar-se sensível com a capacidade de jogar e pensar como um ser humano ... em que ponto eles provavelmente racionalmente decidir começar wallhacking novamente de qualquer maneira: p
—
Thomas
@ Thomas: Na prática, acho que você pode fazer algum tipo de compromisso, aproximando o nível de informação que eles teriam como jogador sem se dar ao trabalho de implementá-lo dessa maneira. Medidas simples, como testes corretos para a linha de visão, limitando a capacidade de identificar um objeto além de uma certa distância, etc. podem percorrer um longo caminho.
—
R .. GitHub Pare de ajudar o gelo