Dado un jugador y un enemigo con posición, y dado el vector de dirección de cada uno, ¿cómo puedo saber si uno puede "ver" al otro?
En otras palabras, ¿cómo pruebo si una posición con dirección está al frente o detrás de otra posición con dirección?
Para mis propósitos, 'delante de' significa directamente delante de, o 90 grados a cada lado.
11
Claramente, la solución es crear otra cámara y volver a renderizar la escena desde el punto de vista del enemigo, luego realizar un reconocimiento de imagen en el resultado para el personaje del jugador.
—
Riking
el premio de respuesta más simplista va a ...
—
OganM
Si bien el comentario de Riking probablemente fue una broma, esta es la forma justa de hacerlo: dar a los NPC el mismo acceso al estado del juego que tendría un jugador en lugar de permitirles acceder al estado interno del juego.
—
R .. GitHub DEJA DE AYUDAR A ICE
@R .. Sí, pero ¿dónde trazas la línea? Llevando este razonamiento a su punto final lógico, los NPC eventualmente se vuelven conscientes con la capacidad de jugar y pensar como un ser humano ... en ese punto probablemente decidirían racionalmente comenzar de nuevo el bloqueo de paredes de todos modos: p
—
Thomas
@Thomas: En la práctica, creo que puedes hacer algún tipo de compromiso, aproximando el nivel de información que tendrían como jugador sin tener que molestarse en implementarlo de esa manera. Las medidas simples, como las pruebas correctas de la línea de visión, que limitan la capacidad de identificar un objeto más allá de una cierta distancia, etc., podrían ser muy útiles.
—
R .. GitHub DEJA DE AYUDAR AL HIELO