Je suis en train de construire un jeu 2D simple basé sur des tuiles en JavaScript, et je veux savoir la meilleure façon de stocker des données cartographiques sur le client.Javascript: La meilleure façon de stocker des données cartographiques?
Sur le serveur, je stocke la carte en blocs de 64x64 et je demande les trois jeux suivants lorsque le joueur entre dans un quadrant de son bloc 64x64 actuel. Pour cette raison, je vais certainement besoin de diviser le morceau en un quadtree, où chaque nœud est 1/4 de la carte.
Je veux savoir comment stocker chaque quadrant dans le quadtree. Ma plus grande préoccupation est de savoir à quelle vitesse je peux analyser les données. Quand je demande un nouveau morceau 64x64 de la carte, je dois l'avoir prêt à partir avant que le joueur puisse le voir. Si je stocke les données cartographiques sous la forme d'un tableau à deux dimensions, il faudrait du temps O (N^2) pour le stocker, ce dont je ne suis pas satisfait, surtout parce que je ferais 3x 4096 tuiles. Serait-il possible de descendre à O (nlogn)?
Si cela aide, j'ai une démo simple du monde du jeu. Actuellement, il copie juste un morceau 64x64 dans un tableau 2D. https://rawgit.com/Meredithrs/HTML5-Canvas/master/game-window-demo/index.html
Je ne vais pas le stockage d'une primitive dans le tableau de la carte, donc je devrais pouvoir faire map.get (x, y) .isWalkable(), qui ne nécessiterait pas d'itération, en fonction de la structure de données que j'utilise. Je suis plus préoccupé par le transfert des données d'une chaîne à une structure de données aussi rapidement que possible. – Meredith