我正在用JavaScript构建一个简单的基于瓦片的2D游戏,我想知道在客户端上存储地图数据的最佳方式。Javascript:存储地图数据的最佳方法?
在服务器上,我将地图存储在64x64块中,当播放器进入当前64x64块的象限时,我会请求接下来的三组。因此,我肯定需要将块分割成四叉树,其中每个节点是地图的四分之一。
我想知道如何在四叉树内存储每个象限。我最关心的是我能够多快地解析数据。当我请求一张新的64x64地图时,我需要准备好在播放器能够看到它之前准备好。如果我将地图数据存储为二维数组,则需要O(N^2)次来存储它,这并不令我满意,尤其是因为我会做3x 4096个磁贴。是否有可能将此归为O(nlogn)?
如果有帮助,我有一个游戏世界的简单演示了。目前,它只是将一个64x64块复制到二维数组中。 https://rawgit.com/Meredithrs/HTML5-Canvas/master/game-window-demo/index.html
我不会存储原始地图阵中,所以我应该能够做到map.get(X,Y) .isWalkable(),它不需要迭代,这取决于我使用的数据结构。我更关心的是尽快将数据从字符串传输到数据结构。 – Meredith