Cartes DS

Un ds_map est une structure de données qui stocke des données dans des paires liées constituées d'une clé et d'une valeur correspondante.

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.

  1. ds_map_exists
  2. ds_map_create
  3. ds_map_add
  4. ds_map_clear
  5. ds_map_copy
  6. ds_map_replace
  7. ds_map_delete
  8. ds_map_empty
  9. ds_map_size
  10. ds_map_find_first
  11. ds_map_find_last
  12. ds_map_find_next
  13. ds_map_find_previous
  14. ds_map_find_value
  15. ds_map_read
  16. ds_map_write
  17. ds_map_destroy

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...

  1. ds_map_secure_save
  2. ds_map_secure_save_buffer
  3. ds_map_secure_load
  4. ds_map_secure_load_buffer

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.

JSON et Ds_maps

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:

  1. ds_map_add_list
  2. ds_map_add_map
  3. ds_map_replace_list
  4. ds_map_replace_map

Il y a aussi quelques fonctions complémentaires pour ds_lists:

  1. ds_list_mark_as_list
  2. ds_list_mark_as_map

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.


Retour: Structures de données
Suivant: Files d'attente de priorité DS
© Copyright YoYo Games Ltd. 2017 Tous droits réservés