Должен ли я иметь один прослушиватель событий, который обновляет все спрайты, или у каждого спрайта должен быть свой собственный прослушиватель событий? - PullRequest
0 голосов
/ 05 мая 2020

Итак, я делаю игру. В настоящее время у меня есть такой способ: каждый спрайт-тип имеет один прослушиватель событий «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)
  })()
}

Я также хотел бы отметить, что эти спрайты постоянно создаются и удаляются, поэтому я не уверен, как работают слушатели событий, и если их соответствующие элементы будут удалены, они также будут удалены, я бы на это надеюсь, иначе я бы подумал, что этот подход определенно не сработает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...