❤ 0 Les Tableaux
Bonjour mes amies et mes amis. Voici un nouveau tuto qui va parler des tableaux dans The Games Factory 2, Multimédia Fusion 2, et Multimédia Fusion 2 version Développeur. Le tuto est aussi valable sur la version Newgrounds de TGF2.
Les trois logiciels possèdent nativement une extension qui se nomme Tableau. (Array sur les versions anglaises)
L'objet Tableau permet de mémoriser une chaîne (Lettres et Chiffres), ou des valeurs entières (Que des chiffres) sur un maximum de 3 dimensions (X,Y,Z). Pour commencer, je vais vous expliquer ce qu'est « une dimension » pour un tableau.
Les Tableaux en 1D
Si vous avez utilisé MMF vous avez je pense utilisé un tableau à 1 dimension (enfin presque).
Si si, les variables et les chaînes de variables. (Locales ou pas)
Dans chaque variable, vous pouvez placer qu'une seule chaîne/valeur. Les variables sont désignées par un ID (un chiffre). Dans un tableau c'est pareil. C'est une ligne ( X ) coupée par des cases (Index), et chaque case possède un ID qui est l'adresse de celui-ci, qui peut contenir une chaîne ou une valeur numérique suivant la configuration de l'objet.
Voici un exemple simple pour comprendre. Le nombre 25 se trouve sur la case (X1), et sur la case (X6) se trouve le nombre 69.
Les Tableaux en 2D
Vous avez déjà joué à la bataille navale ? E-7 ? Touché ! E-8 ? Coulé ! Tu as coulé mon sous-marin.
Bah vous avez utilisés un tableau en 2D ! Pour trouver un point, il faut deux coordonnées. Le X et le Y. (Horizontal et Vertical).
Voici un exemple simple pour comprendre. Le nombre 32 se trouve sur la case (X7) ET (Y1). Il faut deux nombres pour trouver l'adresse de la case. (X7,Y1).
En (X1,Y4) se trouve le nombre 44. Et en (X4,Y6) se trouve le nombre 69.
Tiens cela ne vous rappelle pas des cours de mathématiques pour poser des points sur un repère orthonormé ?
A noter que j'utilise la notation (X4,Y6) pour bien montrer, mais vous pouvez voir ce genre de notation (4,6) sans le X et le Y ou aussi [4,6].
Les Tableaux en 3D
Alors là, ça va très certainement être dur de me faire comprendre. Bon la 3D (3e dimension) apporte une nouvelle « couche » pour désigner un point, la profondeur. (Z)
Ce qui veut dire un carreau en 2D peut être encore découpé dans sa profondeur. (Comme des calques aussi)
Dans l'exemple plus haut, le nombre 69 serait en (X4,Y6,Z0 (ou Z1 suivant l'option indexation.)) car il est le sur le premier plan.
Pour bien me faire comprendre je reprends aussi le mini exemple que Falco m'a fait.
Pour comprendre le système de profondeur, on peut voir ça comme un système de calque.
Z étant un calque.
X:19 Y: 25 sur le calque (z) 1
X:32 Y: 43 sur le calque (z) 2
Paramétrer son tableau.
Un tableau ça se paramètre avant l'utilisation !
Voyons voir un peu les options de configuration du tableau.
Dimensions
C'est ici que vous allez choisir le type de tableau que vous allez utiliser. (1D,2D,3D)
Dans la configuration native, le tableau est en 1D ! (10 cases en X, 1 case en Y et une case en Z)
Attention à ne pas placer 0 cases en Y et Z!)
Pour passer en 2d, il suffit de changer la valeur du nombre de case en Y idem en Z pour avoir un tableau en 3d !
Numérique ou texte ?
L'option parle d'elle-même. Un tableau exclusif en valeur ou en chaîne de caractères ?
Attention vous ne pouvez pas changer le type de tableau quand le programme est lancé.
Options
Deux options à cocher :
-Index basé sur 1 : C'est simple, le 1er carreau a l'id 1 et non 0 si c'est coché.
-Global à toute l'application : Si je fais un 2e tableau sur une autre scène qui porte le même nom qu'un tableau d'une autre scène, les données du tableau seront les mêmes et communiquent entre eux.
Cool non ?
Écrire des choses dans un tableau.
C'est bien d'avoir un tableau dans notre application, mais c'est encore mieux de pouvoir inscrire des trucs bidule et chouette dedans. Vous allez voir, c'est simple. Je vais vous montrer comment écrire la valeur numérique 69 (j'adore ce chiffre je sais) sur un tableau en 2d au cordonnée (6,9).
Bon avant j'ai bien sur configuré mon tableau en 2d et en valeur numérique.
Dans l'éditeur d’événement, j'ai fait une condition du type : Lors de l'appui sur la touche ''A''.
Et dans les effets, sur la case du tableau, Écrire une valeur en XY, qui correspond à l'écriture d'une donnée dans un tableau en 2d. Écrire en X c'est pour le 1D et Écrire en XYZ pour la 3d.
Attention aussi à ne pas vous mélanger entre Valeur et Chaîne suivant ce que vous voulez faire.
L'éditeur d'expression s'ouvre :
-Entrer la valeur à écrire : C'est la valeur (ou chaîne si vous êtes dans l'option chaîne bien sur) qui sera mémorisée dans le tableau. Dans notre exemple, nous allons écrire 69.
-Entrer l'index X : Dans qu'elle case ( X ) ce nombre va aller ? Dans notre exemple nous avons choisis la case (X6). Donc je note 6.
-Entrer l'index en Y : Comme X mais pour la case Y. J'avais dit (Y9). Donc 9.
Et voilà ce que cela donne avec l'éditeur d'action :
Bravo ! Vous avez mémorisé un nombre dans votre tableau.
Changer une donnée dans le tableau.
C'est simple, il suffit de refaire la même manipulation avec une autre donnée. Exemple : si finalement en (6,9) je veux placer le nombre 100 à la place du 69, un peu plus tard dans le programme, je refais la même chose :
-Entrer la valeur à écrire : C'est la valeur (ou chaîne si vous êtes dans l'option chaîne bien sur) qui sera mémorisé dans le tableau. Dans notre exemple, nous allons écrire 100.
-Entrer l'index X : Dans qu'elle case ( X ) ce nombre va aller ? Dans notre exemple nous avons choisi la case (X6). Donc je note 6.
-Entrer l'index en Y : Comme X mais pour la case Y. J'avais dit (Y9). Donc 9.
Et voilà le nouveau nombre est mémorisé. Simple non ?
Sortir des données !
Ah oui, c'est cool de placer des données dans un tableau, mais savoir les sortir c'est encore mieux pour travailler tout ça. Vous allez voir, c'est simple comme bonjour. Dans l'exemple que je vais montrer, je vais afficher la valeur contenue en (6,9), pour ça j'ai placé l'objet compteur sur ma scène.
Toujours sur la même ligne de condition, sur la case compteur, je vais utiliser l'option changer compteur. L'éditeur d'expression s'ouvre. Je vais récupérer les données d'un objet et utiliser l'option : Lire la valeur à la position XY.
Cela va inscrire ça dans l'éditeur d'expression.
ValueAtXY( "Tableau", >Entrer le décalage en X<, >Entrer le décalage en Y<)
Maintenant remplacer : Entrer le décalage en X par 6.
Entrer le décalage en Y par 9.
Et voilà quand vous allez utiliser la touche A, le chiffre 69 sera mémorisé dans le tableau en (6,9) et la compteur va lire la valeur en (6,9) pour l'afficher.
Mais quelle est l'utilité d'un tableau ?
Je ne peux pas trop répondre à cette question étant donné que souvent l'utilisation d'un tableau est un goût personnel. Elle se substitue à remplacer des variables globales (ou chaîne de texte).
Par exemple si il faut tenir compte des points de vie « de plusieurs monstres », dans un système de combat à la RPG. Que d'avoir des variables globales ou locales, un tableau peut être utile. Surtout si on ajoute les points de magie, des points de caractéristique…
J'utilise un tableau pour définir les cases qui bloquent dans un système de déplacement case par case.
Un tableau en 2d me permet d'avoir les X et les Y qui représentent la carte de jeu. Quand le joueur veut se déplacer, un test est effectué pour savoir si la case à coté possède une valeur qui représente une case libre ou pas. Et suivant cette valeur, le déplacement se fait ou pas. Cela évite de passer par des masques en image. (C'est une autre technique donc). Je peux même utiliser un tableau en 3d pour désigner un type id de la case pour effectuer un bruit de pas ou autre programmation utile. (Enfin attention à la gourmandise en ram des tableaux)
Télécharger l'exemple d'utilisation d'un tableau pour faire des déplacements en case par case.
Et surtout pour moi, la force d'un tableau, c'est de pouvoir être sauvegardé et rechargé dans MMF. Cela permet de faire des sauvegardes, des fichier de map ou bien d'autre utilités que je n'ai pas en mémoire.
D'autres possibilités d'un tableau.
Vous pouvez sortir le nombre de l'index que possède une dimension. Il y a aussi des options de position. Comme un curseur invisible qui se place sur un index ! (Trois index, sur les X,Y et Z).
Le mot de la fin
Fin !
Bon voilà la fin du petit tuto sur les tableaux. J'ai donné un exemple sur le fonctionnement d'une valeur numérique, pour les chaînes de caractères c'est bien sûr la même chose.
Bonne journée et bon MMFing.
|