Aujourd’hui, on va parler de trois plugins officiels de gestion de données:

  • Array (tableau)
  • Dictionnary
  • Webstorage

A quoi servent-ils? A stocker des données, mais chacun d’entre eux à un fonctionnement différent, que l’on va décrypter ensemble
C’est parti:

Arrays:

Un array (tableau de valeurs) est un moyen de stocker des données multiples durant la durée du jeu, lorsque la fenetre se ferme, le tableau est vidé, Construct 2 permet la création de tableaux à trois dimensions, cela permet d’organiser ses valeurs de la meilleure manière, mais un tableau nécessite des précautions lors de sa création:

  • Sa taille dans chaque dimension (si une dimension est inutilisée, la mettre à 1), en effet, si une dimension est égale à zéro, le tableau entier est « écrasé », et ne peut contenir aucune valeur
  • Le nombre de valeur à stocker par rapport à la taille du tableau, car si vous débordez, la valeur ne sera pas stockée (par défaut, les valeurs hors tableaux vallent 0)

Il est possible d’appeler une valeur au moyen de ses coordonnées dans le tableau, au moyen des variables Array.At(X) , Array.At(X,Y), Array.At(X,Y,Z) (selon les dimensions utilisées de votre tableau), et de leur affecter des valeurs au moyen des actions Set At X, Set At XY ou Set At XYZ.

La valeur AsJSON peut être chargée dans un autre tableau, pour le rendre égal au premier, il s’agit de l’ensemble des données du tableau, au format JSON, en voici un exemple:

{« c2array »:true, »size »:[2,5,1], »data »:[[[« Colonne 1 »],[« Fruit »],[« Legume »],[0],[0]],[[« Colonne 2 »],[« Pastèque »],[« Haricot »],[0],[0]]]}

correspond à:

« Colonne 1 » « Colonne 2 »
« Fruit » « Pastèque »
« Legume » « Haricot »
0 0
0 0

Bien sûr, le tableau est, comme expliqué ci-dessus, en trois dimensions, ainsi, on peut facilement stocker et ordonner un nombre considérable de valeurs.

Dictionnary et WebStorage:

Non, le dictionnary ne contient pas de définition pour des mots, ou de traduction (vous pouvez vérifier dans le manuel, je ne mens pas), il s’agit un moyen de stockage assez proche du principe des variables, à savoir que vous faites une correspondance entre un nom (nommé clef/key)  et une valeur (value, qui est un nombre ou une chaine de caractères), quand au webstorage, c’est exactement le même principe, sauf qu’il perdure une fois le jeu fermé (soit durant la session active, soit pour toute la vie du cache du navigateur), et qu’il ne stocke QUE des chaines de caractères (cela est à prendre en compte si vous souhaitez stocker un nombre, il faudra le reconvertir pour le réutiliser).

Pour le dictionnary, vous pouvez ajouter/remplacer une valeur au moyen de la commande Add key, ou bien juste changer la valeur d’une clef existante avec Set Key, vous pouvez aussi enlever une clef, ainsi que vider entièrement le dictionnary en question (plusieurs peuvent coexister), pour récupérer la valeur d’une clef, la variable Dictionary.Get(Key), ou Key est le nom de votre clef (avec les guillemets).

Le WebStorage, lui, possède deux type de stockage, le session storage (qui ne dure que la session active) et le local storage (qui dure tant que le cache existe), Set local value et Set session value permettent d’ajouter des valeurs dans les deux storages, vous pouvez vider l’un ou l’autre séparément, ainsi que effacer une valeur.

Maintenant, la partie intéressante, il est possible de charger un Dictionnary au format JSON dans le local storage du WebStorage (au moyen de l’action WebStorage:Load JSON, avec le paramètre JSON valant Dictionary.AsJSON), mais attention, le WebStorage ne pouvant stocker que des chaînes de caractères, les nombres seront convertis, et l’opération inverse doit être faite avec prudence…

Il y a deux modes possible pour charger un Dictionnary dans le WebStorage:

  • Set: vide le Webstorage de ce domaine, et remet une à une les clefs
  • Merge: Ajoute les clefs du dictionnary dans le Webstorage, et remplace celles existantes si identiques, mais le reste des données est encore présent

La vidéo ci-après montre un exemple d’utilisation de ces chargement du Dictionnary vers le WebStorage, et inversement: