La structure de données ds_map est particulièrement utile car elle vous permet de stocker des paires de clés et de valeurs. Par exemple, un personnage dans votre jeu peut avoir une quantité d'objets différents ( clés ) et pour chaque objet il peut en avoir plusieurs ( valeurs ), comme dans un RPG où vous pouvez avoir 10 potions de santé, 5 potions de mana et 100 pièces d'or. Les cartes maintiennent toutes ces paires au même endroit et vous pouvez ajouter des paires à la carte et rechercher la valeur correspondant à certaines touches en utilisant des fonctions simples. Cependant, vous devez savoir quelques choses sur les cartes avant de les utiliser! Les cartes ne sont pas triées de façon (reconnaissable), ce qui signifie que pour trouver une certaine clé, vous devrez parcourir toute l'affaire (ce qui est très lent). Il est également impossible de conserver deux clés identiques et vous ne pouvez pas attribuer deux valeurs à une clé.
REMARQUE: Les fonctions ds_map ont changé depuis les versions précédentes de GameMaker sorte que les jeux importés peuvent ne pas fonctionner ou se comporter comme prévu.
REMARQUE: Comme pour toutes les ressources dynamiques, les structures de données occupent de la mémoire et doivent donc toujours être détruites lorsqu'elles ne sont plus nécessaires pour éviter les fuites de mémoire qui ralentiront et finiront par planter votre partie.
Les fonctions suivantes concernent les cartes DS.
Il y a quatre autres fonctions disponibles pour sauvegarder et charger un fichier ds_map. Ces fonctions vont crypter la carte et la stocker dans un emplacement sécurisé sur la plate-forme cible, de sorte que vous pouvez l'utiliser pour enregistrer les détails de l'achat de l'application, les mots de passe, les informations de jeu sensibles, etc...
En dehors de ces fonctions spécifiques, vous pouvez tous utiliser une expression (appelée accesseur ) pour ajouter ou modifier le contenu de votre ds_map. Cet accesseur ressemble à un tableau 1D avec la syntaxe suivante:
map_index[? key]
Vous pouvez trouver plus d'informations, ainsi que des exemples, à partir de la page Vue d'ensemble du GML sur les accesseurs.
Une des utilisations de ds_maps est lorsque vous travaillez avec JSON, et donc il y a quelques fonctions spéciales qui sont spécifiques à cela:
Il y a aussi quelques fonctions complémentaires pour ds_lists:
REMARQUE: Bien que ces fonctions vous permettent d'ajouter des listes et des cartes dans une carte, elles ne servent à rien d'autre que JSON et les cartes et listes imbriquées ne seront pas lues correctement si elles sont écrites sur disque ou accédées autrement.
NOTE: si vous avez besoin de vérifier si une structure de données existe, vous pouvez utiliser ds_exists() fonction.