Всем здравствуйте.
У меня есть такой вопрос, который я не представляю, как решить. Нужна ваша помощь. Вопрос немного не по этому языку, но принцип программирования везде одинаковый.
Суть вопроса такая:
Создана ENT(сущность Дрон), вооруженная самонаводящимися ракетами. После запуска ракет, ракета начинает поиск ближайшего, видимого противника.
Сам поиск противника построен по такой схеме - после запуска ракеты циклом нахожу все ENT(с нужным класснеймом, у меня "player"), неважно видимые или скрытые за препятствиями. Т.е. все противники найдены. Теперь трассировкой нахожу ближайшего видимого(не скрытого за препятствием) противника, начальная точка есть (ракета), конечная (противник) тоже есть. Если до момента попадания в противника, его кто то "грохнул" - ракета продолжает движение прямо, пока не будет найден следующий противник (или пока не истечет время жизни этой ракеты).
Вроде всё хорошо, все нормально. Есть одно НО. Противник может появиться не только спереди, он может появиться сзади, слева или справа, более угла 90 градусов (т.е. уже сзади). Естественно ракета резко меняет направление, и если она не успела улететь подальше от самого Дрона, то она просто ударяется в этого Дрона (своего родителя) и взрывается. Естественно наносит ущерб Дрону, да и ракета теряется впустую.
Теперь и сам вопрос - как ограничить трассировку видом только вперед, ограничить углом ~90 градусов? У кого какие мысли есть отпишитесь пожалуйста, а то у меня что то мозги не работают. Возможно сам алгоритм поиска противников у меня неверный. Код не нужен - нужны мысли.
Для примера видео - на нем видно, как ракета может лететь в какую угодно сторону за противником.
https://youtu.be/pR5mCMDrfWg
или здесь
https://youtu.be/t1B7629FbLs