Видит ли игрок Ентити Икс?

Что?Я хотел,чтобы так:если во всей зоне экрана нет ентити,вернуть false
 
Дракон наверное об этом: http://pmg.org.ru/nehe/nehex2.htm (тут есть код и описание алгоритма)
View frustum (пирамида видимости) – это часть пространства, в которой находятся все объекты, видимые из данной точки в данный момент. Проще говоря поле зрения камеры.

Но уверен есть способ проще, через rayCast
 
canBeSeen проверяет видимость одной точки к другой, без учёта поворота головы (направленного взора).
Если зайти за стену из блоков, возвращает false. Так что метод рабочий.
Ну а по сабжу... хз, если найду, отпишусь.
 
Как бы надо, так:если игрок отвернулся,то false,если видит(хоть краем глаза entity)-true
 
единственное что остается, проверять угол поворота головы игрока и сравнивать с положением Entity, если canBeSeen = true;
Это будет пусть и не точным, за то быстрым. И точность будет зависеть от "угловой" fov или как там её.
Берем равносторонний треугольник с 90 градусами в каждом угле. На вершине стоит игрок, то что он видит и есть треугольник.
далее проверяем удаленность точки Entity от всех трех точек, если хоть одна из них дальше длины ребра треугольника (катет), то точка (Entity) лежит за пределами треугольника.
Сам я не силен в математике, но вот ресурс http://mathprofi.ru/ .Если сесть и разобраться, то можно, там очень понятно расжевываются всё.
 
Назад
Сверху