Представьте, что у нас есть 2D небо (10000x10000
координаты). В любом месте на этом небе у нас может быть самолет, идентифицированный по его положению (x, y)
. Любой самолет может начать движение по другим координатам (по прямой линии).
Существует один компонент, который управляет всем этим позиционированием и перемещением. Когда самолет хочет двигаться, он отправляет ему сообщение в виде (start_pos, speed, end_pos)
. Как я могу сказать в компоненте, когда одно воздушное судно будет двигаться в зоне прямой видимости другого (каждое воздушное судно имеет это как свойство в качестве радиуса обзора), чтобы уведомить об этом. Обратите внимание, что много самолетов могут двигаться одновременно. Кроме того, этот алгоритм хорош, чтобы быть эффективным, если он может обрабатывать ~ 1000 самолетов.
Если есть какое-то ограничение, которое ограничивает ваше решение - его, вероятно, можно удалить. Проблема не устранена.