Фон:
Я только начинаю делать игру, в ней есть объекты, которые должны иметь возможность общаться друг с другом посредством «звука» (необязательно реального звука, может быть смоделированным звуком, но он должен вести себя как звук).
Это означает, что они могут общаться друг с другом, только если они находятся в пределах слышимости.
Вопрос:
Есть ли какой-нибудь умный способ проверить, находится ли другой объект в пределах слышимости без необходимости проходить через все другие объекты? (это станет действительно неэффективным, когдаих много).
Примечание: В пределах диапазона слышимости может быть более 1 объекта, поэтому все объекты в пределах диапазона слышимости добавляются в массив (или список, еслипока не решено) для связи.
Данные
В настоящее время объект обладает этими свойствами (их можно изменить при необходимости).
Object {
id = self.id,
x = self.x,
y = self.y,
hearing_max_range = random_range(10, 20), // eg: 10
can_hear_other = []; // append: other.id when in other in range
}