Partagez
Aller en bas
avatar
crackerwood
Membre

Nombre de messages : 343
Age : 33
Localisation : Derrière son pc y parait
Distinction : aucune
Date d'inscription : 03/08/2008

RPG Maker VX Ace Apprendre à trier des variables

le Ven 13 Déc 2013 - 14:12
APPRENDRE A TRIER DES VARIABLES DANS L’ORDRE CROISSANTES OU DECROISSANTES




Dans ce tutorial nous allons apprendre à trier des variables dans un ordre précis : croissante (plus petit au plus grand) ou décroissante (plus grand au plus petit).
Je ferais de mon mieux pour expliquer au plus simple et clair possible.
Ce tutorial est à la base fais par Joke (très grand event-maker). Je l’ai adapté sur RMVX Ace. Si voulez remercier quelqu’un, remercier surtout Joke en priorité.

1 – Pourquoi faire un système comme celui-ci ?
Bonne question. Pour ma part il va surtout servir pour un CMS. Il peut également servir pour un système de combat fais entièrement en évènement par exemple. Le système va surtout vous dire quelle est la variable la plus petite et la variable la plus grande.

2 – Préparation
Comme tout système il va falloir quelques préparations. Nous allons travailler sur quatre variables.
- Quatre variables aléatoire (pour le tutorial car normalement dans votre jeu elle seront déjà attribuées. Ici elles seront les variables 1, 2, 3 et 4)
- Quatre autres variables qui serviront pour l’ordre croissant ou décroissant. Ici elles seront les variables 6, 7, 8 et 9.
- Une variable qui contiendra la donnée minimale ou maximale. Ici la variable 11.
- Une variable qui dira à quel ordre de variable on est arrivé. Ici la variable 12.
- Quatre variables pour l’affichage des chiffres (il est possible d’en avoir plus mais pour le tutorial se sera quatre). Elles seront les numéros 14, 15, 16 et 17. Les chiffres seront de 1 à 10.

Pour mieux comprendre vous aurez toujours deux variables pour préparer le tri croissant ou décroissant.
Ensuite vous aurez pour quatre variables à trier ; quatre autres variables pour l’ordre. Donc autant de variable de tri que de variable à trier.

3 – Apprendre à trier les variables

Voici le code total de l’évènement que l’on va décomposer :

| > Opération : Variable [0006..0009] = 0
| > Opération : Variable [0011:Valeur de contrôle] = 1
| > Opération : Variable [0012:Position variable] = 6
| > Boucle
| > | > Condition : Variable [0011:Valeur de contrôle] == Variable [0001:Aléatoire variable 1]
| > | > | > Appeler Script : $game_variables[$game_variables[12]] = 1
| > | > | > Opération : Variable [0012:Position variable] += 1
| > | > Fin - Condition
| > | > Condition : Variable [0011:Valeur de contrôle] == Variable [0002:Aléatoire variable 2]
| > | > | > Appeler Script : $game_variables[$game_variables[12]] = 2
| > | > | > Opération : Variable [0012:Position variable] += 1
| > | > Fin - Condition
| > | > Condition : Variable [0011:Valeur de contrôle] == Variable [0003:Aléatoire variable 3]
| > | > | > Appeler Script : $game_variables[$game_variables[12]] = 3
| > | > | > Opération : Variable [0012:Position variable] += 1
| > | > Fin - Condition
| > | > Condition : Variable [0011:Valeur de contrôle] == Variable [0004:Aléatoire variable 4]
| > | > | > Appeler Script : $game_variables[$game_variables[12]] = 4
| > | > | > Opération : Variable [0012:Position variable] += 1
| > | > Fin - Condition
| > | > Opération : Variable [0011:Valeur de contrôle] += 1
| > | > Condition : Variable [0012:Position variable] > 9
| > | > | > Sortir de la Boucle
| > | > Fin - Condition
| > | > Condition : Variable [0011:Valeur de contrôle] > 10
| > | > | > Sortir de la Boucle
| > | > Fin - Condition
| > Fin – Boucle

Un code plutôt court il faut avouer. Commençons à le découper en plusieurs morceaux.

| > Opération : Variable [0006..0009] = 0
| > Opération : Variable [0011:Valeur de contrôle] = 1
| > Opération : Variable [0012:Position variable] = 6


- Cette partie est simple. Les variables 6 à 9 sont les variables qui nous dirons qu’elle variable est la première, deuxième, troisième et quatrième. Donc à chaque démarrage de l’évènement elles sont remise à zéro.
- La variable 11 est égale à la valeur minimale ou maximale (1 ou 10 je vous rappelle). Donc ici elle est égale à la valeur minimale (tri décroissant). Si vous voulez trier dans l’ordre croissant elle sera égale à 10.
- La variable 11 est égale à la première variable qui servira pour le tri donc 6. Ces variable sont celles mise à zéro au tout début.


| > Boucle
| > | > Condition : Variable [0011:Valeur de contrôle] == Variable [0001:Aléatoire variable 1]

| > | > | > Appeler Script : $game_variables[$game_variables[12]] = 1
| > | > | > Opération : Variable [0012:Position variable] += 1
| > | > Fin - Condition

- On lance une boucle sans attendre dedans. J’ai souvent (toujours) dis qu’il fallait mettre au minimum un « attendre : 1 frame » à l’intérieur. Voici un exemple où il ne le faut pas. En effet la boucle va tourner très vite (quelques milli secondes) et la quitter quand on le lui demandera (voir fin tutorial).
- La condition permet de se lancer si la variable 11 est égale à la variable 1. Vous me direz : « oui mais la variable 11 est déjà égale à 1 alors que la variable aléatoire est égale à une valeur autre. Et bien oui mais la variable 11 changera en fin de boucle. Donc, si elle n’est pas égale elle change et si elle est égale la condition se lance.
- Cette commande script un peu barbare veut tout simplement dire « la valeur de la variable 12 sera égale à 1 ». Plus simplement : la variable contenue dans la variable 12, c’est-à-dire 6 est égale à 1. La variable 6 sera égale à 1. Pour les gens connaissant RPG Maker 2003 cette commande évènementielle dans la gestion des variables est « d’après la variable ». Cette commande ayant disparu nativement il faut le faire soi même.
- La variable 12 est augmenté de 1. Elle passe donc de 6 à 7. La première condition est terminée.


| > | > Condition : Variable [0011:Valeur de contrôle] == Variable [0002:Aléatoire variable 2]
| > | > | > Appeler Script : $game_variables[$game_variables[12]] = 2
| > | > | > Opération : Variable [0012:Position variable] += 1
| > | > Fin – Condition
- C’est le même chose que la précédente. Seule change la condition si variable 11 est égale à 2 (tout à l’heure c’était 1), la variable contenue dans la variable 12, c’est-à-dire 6 est égale à 2. La variable 6 sera égale à 2.

| > | > Condition : Variable [0011:Valeur de contrôle] == Variable [0003:Aléatoire variable 3]
| > | > | > Appeler Script : $game_variables[$game_variables[12]] = 3
| > | > | > Opération : Variable [0012:Position variable] += 1
| > | > Fin - Condition
| > | > Condition : Variable [0011:Valeur de contrôle] == Variable [0004:Aléatoire variable 4]

| > | > | > Appeler Script : $game_variables[$game_variables[12]] = 4
| > | > | > Opération : Variable [0012:Position variable] += 1
| > | > Fin - Condition

- Encore les deux même conditions. Si vous travaillez avec 12 variables il y aura 12 conditions et ainsi de suite. Je vous rappel que nous travaillons avec quatre variables dans ce tutorial.

| > | > Opération : Variable [0011:Valeur de contrôle] += 1

- A la fin de la vérification de la variable 11, elle augmentera de 1. Toujours dans le but que les conditions soit respectées. Si vous dans un ordre décroissant (plus grand au plus petit) elle baissera de 1.

| > | > Condition : Variable [0012:Position variable] > 9
| > | > | > Sortir de la Boucle
| > | > Fin - Condition
| > | > Condition : Variable [0011:Valeur de contrôle] > 10
| > | > | > Sortir de la Boucle
| > | > Fin - Condition
| > Fin – Boucle


- Une nouvelle condition qui dis que si la variable 12 est STRICTEMENT supérieur à 9 on sors de la boucle. Logique puisque les positions des variables sont gérer dans les variables 6, 7, 8 et 9 donc au dessus c’est fini.
- La dernière condition dit que si la variable 11 (qui augmente ou baisse de de 1 à chaque condition je le rappel) est supérieur à 10 (ordre croissant) ou 1 (ordre décroissant) on sortira de la boucle.


4 – Préparation de l’affichage des chiffres

Cette évènement permet d’afficher les chiffres par un évènement commun dans la démo. Cet évènement est codé comme cela :

| > Condition : Variable [0006:Variable 1] == 1
| > | > Opération : Variable [0014:Aff. chiffre 01] = (la valeur de la variable [0001:Aléatoire variable 1])
| > Fin - Condition
| > Condition : Variable [0006:Variable 1] == 2
| > | > Opération : Variable [0014:Aff. chiffre 01] = (la valeur de la variable [0002:Aléatoire variable 2])
| > Fin - Condition
| > Condition : Variable [0006:Variable 1] == 3

| > | > Opération : Variable [0014:Aff. chiffre 01] = (la valeur de la variable [0003:Aléatoire variable 3])
| > Fin - Condition
| > Condition : Variable [0006:Variable 1] == 4

| > | > Opération : Variable [0014:Aff. chiffre 01] = (la valeur de la variable [0004:Aléatoire variable 4])
| > Fin - Condition
| > Condition : Variable [0007:Variable 2] == 1

| > | > Opération : Variable [0015:Aff. chiffre 02] = (la valeur de la variable [0001:Aléatoire variable 1])
| > Fin - Condition
| > Condition : Variable [0007:Variable 2] == 2

| > | > Opération : Variable [0015:Aff. chiffre 02] = (la valeur de la variable [0002:Aléatoire variable 2])
| > Fin - Condition
| > Condition : Variable [0007:Variable 2] == 3

| > | > Opération : Variable [0015:Aff. chiffre 02] = (la valeur de la variable [0003:Aléatoire variable 3])
| > Fin - Condition
| > Condition : Variable [0007:Variable 2] == 4

| > | > Opération : Variable [0015:Aff. chiffre 02] = (la valeur de la variable [0004:Aléatoire variable 4])
| > Fin - Condition
| > Condition : Variable [0008:Variable 3] == 1

| > | > Opération : Variable [0016:Aff. chiffre 03] = (la valeur de la variable [0001:Aléatoire variable 1])
| > Fin - Condition
| > Condition : Variable [0008:Variable 3] == 2

| > | > Opération : Variable [0016:Aff. chiffre 03] = (la valeur de la variable [0002:Aléatoire variable 2])
| > Fin - Condition
| > Condition : Variable [0008:Variable 3] == 3

| > | > Opération : Variable [0016:Aff. chiffre 03] = (la valeur de la variable [0003:Aléatoire variable 3])
| > Fin - Condition
| > Condition : Variable [0008:Variable 3] == 4

| > | > Opération : Variable [0016:Aff. chiffre 03] = (la valeur de la variable [0004:Aléatoire variable 4])
| > Fin - Condition
| > Condition : Variable [0009:Variable 4] == 1

| > | > Opération : Variable [0017:Aff. chiffre 04] = (la valeur de la variable [0001:Aléatoire variable 1])
| > Fin - Condition
| > Condition : Variable [0009:Variable 4] == 2

| > | > Opération : Variable [0017:Aff. chiffre 04] = (la valeur de la variable [0002:Aléatoire variable 2])
| > Fin - Condition
| > Condition : Variable [0009:Variable 4] == 3

| > | > Opération : Variable [0017:Aff. chiffre 04] = (la valeur de la variable [0003:Aléatoire variable 3])
| > Fin - Condition
| > Condition : Variable [0009:Variable 4] == 4

| > | > Opération : Variable [0017:Aff. chiffre 04] = (la valeur de la variable [0004:Aléatoire variable 4])
| > Fin – Condition

- Toutes ses conditions sont identiques à deux variables près. Prenons par exemple ses deux conditions (la première est la dernière) :
| > Condition : Variable [0006:Variable 1] == 1
| > | > Opération : Variable [0014:Aff. chiffre 01] = (la valeur de la variable [0001:Aléatoire variable 1])
| > Fin – Condition

| > Condition : Variable [0009:Variable 4] == 4

| > | > Opération : Variable [0017:Aff. chiffre 04] = (la valeur de la variable [0004:Aléatoire variable 4])
| > Fin – Condition

- Très simple. Si la variable 6 (premier chiffre choisis aléatoirement) est égale à 1, la variable 14 sera égale à ce chiffre. Et on continu comme ça pour la condition si variable 6 est égale à 2, 3 et 4 (si vous avez 10 variables vous faites ça jusqu’à 10). Et on fera pareil pour la variable 7 qui affichera le deuxième chiffre d’après la variable aléatoire 2, la variable 8 et la variable 9.

5 – Affichage des chiffres

Ici presque rien à faire. Le mieux est de vous montrer une image.



- Avec la condition cochée si variable 14 :Affichage chiffre 01 vaut 1 apparence égal 1. Sur chaque page vous faites cela. Pour le 2, 3, 4, 5, 6, 7, 8, 9 et 10 en touche action comme ça pas de lag car c’est la condition qui fais tout le travail.

6 – Conclusion

Voilà la fin de ce tutorial. L’évènement de tri présenté est celui qui tri en décroissant (du plus petit au plus grand). Dans la démo vous avez trois évènements commun qui tri en croissant, décroissant et gère la préparation de l’affichage des chiffres. Un fichier au format PDF est fournis dans la démo.

Comme tout tutorial dit démo et bien voilà le lien : https://mega.nz/#F!rUIVDbhJ!e9UH6PK_X8N65Ocs-9LPug


Dernière édition par Shamugan le Dim 29 Juil 2018 - 20:57, édité 2 fois (Raison : Mise à jour lien)
avatar
Spytje
Administrateur

Nombre de messages : 5899
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008

RPG Maker VX Ace Re: Apprendre à trier des variables

le Ven 13 Déc 2013 - 14:58
Très très intéressant merci pour ton travail et partage !
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum