Поле зрения врага
У меня есть игрок и враг, выполняющий определённый набор действий(патруль). Мне нужно каким-то образом задать поле зрения врагу, в котором он сможет видеть игрока и реагировать, но при этом если между ними стоит стена, то реакции врага на игрока нет.
Как мне этого добиться? |
Ответ: Поле зрения врага
вообще я бы использовал для поля зрения обьемный триугольник.
т.е. прикребляешь меш-триугольник , одной из точек является сам враг. ну тоесть прикрепить к этой точке триугольник. затем проверяешь c помощью функции meshintersect пересечение объекта игрока и триугольника. также если есть стена используй linepick |
Ответ: Поле зрения врага
Наверное, лучше сразу начать использовать один (из четырёх) физический движок.
Я пробовал вражеское зрение-детектор на : Bullet Physics wrapper |
Ответ: Поле зрения врага
Походу есть ещё вариант: EntityVisible(ent,dest_ent)
только для этого надо стенам добавить EntityPickMode - это чтобы враг сквозь стены не подглядывал :) А что касается угла обзора, то вот я вытащил из обучалки BlitzSchool: Код:
If (180 - Abs( DeltaYaw(aEnemies(i)\enemysphere, player))) < 100 |
Ответ: Поле зрения врага
Здесь ты перебираешь всех врагов в цикле, т.к. это делается не отдельно а в цикле обновления врагов, то всё нормально. Но если у тебя враги должны видеть ещё и друг друга, чтобы например воевать между разными группами, то мне на ум сразу приходит необходимость использования вложенных циклов (сам не умею по-другому проверять многих со многими).
|
Часовой пояс GMT +4, время: 14:33. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot