Я делаю небольшую 2D-игру на p5. js и у меня есть этот класс Player, который ... является игроком (сюрприз: D) (Код упрощен)
class Player{
constructor(x,y){
this.x = x;
this.y = y;
}
}
И они Плеер хранится в глобальном массиве. Массив также содержит другие объекты игроков.
let globalPlayers = [new Player(0,0), new Player(0,0), new Player(0,0), new Player(0,0)]
Чтобы все игроки могли столкнуться друг с другом, каждый игрок должен знать каждого игрока.
Следовательно, у каждого игрока есть метод, обновляющий копию глобального массива игроков.
class Player{
constructor(x,y){
this.x = x;
this.y = y;
this.otherPlayer;
}
update(otherPlayers){
this.otherPlayer = otherPlayers;
}
}
Я постоянно обновляю этот конкретный массив для каждого игрока в массиве.
function draw() {
for(let i = 0; i < globalPlayers.length; i++){
globalPlayers[i].update(globalPlayers);
}
}
Проблема в том, что массив внутри объектов player становится рекурсивным. Потому что у каждого игрока есть массив с игроками. У каждого игрока в этом массиве есть массив со всеми игроками и так далее ...
Мой вопрос: как я могу улучшить его производительность? Могу ли я каким-то образом предотвратить это?
Я знаю, что можно просто передать массив globalPlayer в методы Player, когда они мне действительно нужны (например, Player.checkCollision (globalPlayers)). Но мне нужно, чтобы массив постоянно обновлялся внутри самого объекта.
Заранее спасибо :)