javascript - 我应该有一个更新所有精灵的事件侦听器,还是每个精灵都有自己的事件侦听器?
问题描述
所以,我正在做一个游戏。我目前拥有它的方式是,每个精灵类型都有一个“gameloop”事件侦听器,并且“gameloop”事件在 for 循环中为每个精灵执行所有游戏逻辑,例如:
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)
})()
}
我还要提一下,这些精灵一直在被创建和删除,所以我不确定事件监听器是如何工作的,如果它们对应的元素被删除,它们也会被删除,我希望如此,否则,我会认为这种方法肯定行不通。
解决方案
推荐阅读
- c# - C#如何找到随机数数组中最小数字的出现次数?
- gstreamer - 是否可以使用 GStreamer 管道构建简单的音高标签系统?
- asynchronous - 如何仅在从漫长的过程中填充对象后才返回对象集合
- json - 如何解析来自 API 的单值 JSON 响应?
- python - pyspark 数据框将 json 列旋转到新列
- vue.js - 使用 Apollo 和 GraphQL 缓存而不是 Vuex?
- node.js - Express:PayloadTooLargeError 试图读取包含大 JSON 的 POST 正文,尽管设置了限制
- typescript - 从 WebView 访问 VS Code api
- python - 更正 re.compile 以消除句点,但为逗号添加空格
- python - 熊猫:在同一图中绘制线和条形图_使用自定义索引_