Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker


Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Jeux: puie z / Jeux: Citymaime - Chapitre 1 / Jeux: Mer, îles et fous / News: Du neuf dans le making / News: Muma|Rope est disponible en (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

340 connectés actuellement

30735724 visiteurs
depuis l'ouverture

2689 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Eclipso

Tashiroworld

Planète Glutko

RPG Maker VX

Kingdom Ultimate

Tous nos partenaires

Devenir
partenaire



Les Tableaux

Un petit tuto pour comprendre les tableaux sur MMF2.

Ecrit par Tata Monos le 07/02/2012


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

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

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

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



Joueur1 - posté le 08/02/2012 à 21:29:14 (981 messages postés)

❤ 0

Hum ?

Merci pour ce tuto car c'est rare de trouver des explications sur ce sujet.

"Il y avait bien une lumière au bout du tunnel... et c'était un lance-flammes" (Terry Pratchett)


Dragown - posté le 08/02/2012 à 21:54:18 (57322 messages postés)

❤ 0

Vive le homebrew

Ba de rien joueur 1. J'ai eu du mal à comprendre aussi les tableaux dans MMF. Cela date que de vos grande vacance quand je cherchais à faire un systeme de déplacement case par case.

Signer du nez ?

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers