Итак, я делаю игру. В настоящее время у меня есть такой способ: каждый спрайт-тип имеет один прослушиватель событий «gamel oop», и это событие «gamel oop» выполняет все c логики игры для каждого из них в течение l oop, например:
document.addEventListener("gameLoop", function () {
for (var l = 0; l < sprites.length; l++) {
(function () {
var sprite = sprites[l]
//game logic for each sprite here.
}
})()
}
}, false)
У меня может быть около 40 таких спрайтов в любой момент моей игры. Я бы предположил, что этот метод был бы намного более оптимизированным, чем наличие у КАЖДОГО спрайта своего собственного прослушивателя событий, например:
for (var l = 0; l < sprites.length; l++) {
(function () {
var sprite = sprites[l]
sprite.element.addEventListener("gameLoop", function () {
//game logic for each sprite here.
}
}, false)
})()
}
Я также хотел бы отметить, что эти спрайты постоянно создаются и удаляются, поэтому я не уверен, как работают слушатели событий, и если их соответствующие элементы будут удалены, они также будут удалены, я бы на это надеюсь, иначе я бы подумал, что этот подход определенно не сработает.