【发布时间】:2016-10-09 10:53:06
【问题描述】:
出于性能原因,我将游戏地图划分为 10,000 个图块。每个图块都有一个实体数组。因此,进入/离开图块的实体会被推入/移出相应的数组。
另一方面,为了避免在 10,000 个数组上循环以更新 所有实体每 x ms,最处理数组的有效方法?
除了tiles数组,我应该创建一个包含所有tiles的所有实体的全局数组吗?不是浪费内存吗?
【问题讨论】:
-
我只是无法很好地获得您的模型。您是否可以不建立观察者模式,以便您的实体在每次移动时发布其状态更改以及您的图块以订阅它们。 Observer and PubSub pattern 是您正在寻找的。每 x 毫秒检查一次所有 10K 瓦片是一个糟糕的主意。
-
我认为您应该使用矩阵分区模式。比如说,按照分区的 500 个瓷砖块。所以你有 500 个图块的 200 个数组元素。这样做会传递区域引用,然后循环遍历子数组。
-
是的,如果您有许多没有任何实体的图块,则包含所有要循环的实体的全局数组将比循环所有图块更有效。
标签: javascript arrays performance