| █▄▀ Les variables |
| Pour créer une variable, on utilise la syntaxe : variable = valeur
Note : Il est correct de déclarer la variable avec la fonction var, alors pour ne pas vous en apercevoir que maintenant comme moi, je vous le dis : pas besoin d'utiliser var en gml. Il y a plusieurs types de variables : les variables globale, les variables locales et les variables temporaire. |
| ▫ 1- Les variables globales |
| global.variable = valeur; |
| Ces variables sont accessibles à partir de n'importe quel script. Elles ne sont effacées qu'à la fin du jeu. |
| ▫ 2- Les variables locales |
| Ces variables sont affectées à un objet. Si l'objet courant est l'objet auquel on veut affecté la variable on précède le nom de la variable par self. : |
| self.variable = valeur; |
| Si l'objet courant n'est pas l'objet auquel on veut affecté la variable il faut précéder le nom de la variable
par l'id de l'objet auquel on veut affecté la variable : |
| id_objet.variable = valeur ; |
Lorsque le nom de la variable n'est précédent de rien. La variable dépend des paramètres définis lors de l'insertion d'un script dans l'event d'un objet. |
|
| Si le script est appliqué à l'objet qui l'appelle (self), la variable est attaché à cet objet.
La variable est précédé de self : |
| self.variable |
Si le script est appliqué à un autre objet (other) impliqué dans l'event (dans le cas d'une collision) le script est attaché à l'autre objet. La variable est précédé de other : |
| other.variable |
Si le script est appliqué à un type d'objet (id_type_objet), la variable est attaché à toutes les objets du même type. La variable est précédé du nom de l'objet: |
| id_type_objet.variable |
|
Remarque : Sachez que tout les noms de sprites, sons, backgrounds, objets etc. retourne un id unique donc une valeur que l'on peut transférer dans un variable. |
| █▄▀ Applications des variables |
| ▫ Utilisation des variables globales |
| On utilise les variables globales pour " centraliser " une valeur utilisée dans plusieurs scripts.
Ex : pour les touches haut |
| global.up = vk_up; |
Il suffit de changer la valeur de la variable global.up pour la changer dans tout les autres scripts qui contiennent global.up. Alors que si vous aviez mis directement vk_up il faudrait remplacer tout les vk_up dans tous les scripts. Il n'est pas possible de redéfinir une variable intégré tel que vk_up: |
| vk_up = nouvelle_valeur; --> erreur ! |
| ▫ Utilisation des variables locales |
| On peut les utiliser pour éviter " trop de conditions " dans un script. Exemple : Le perso de notre jeu a un habit rouge, mais tout au long du jeu il aura un habit bleu, puis vert. |
| // script d'initialisation global.habit_couleur = "rouge"; // script du choix du sprite if (global.habit_couleur = "rouge") self.sprite_index = habit_rouge_sprite; if (global.habit_couleur = "bleu") self.sprite_index = habit_bleu_sprite; if (global.habit_couleur = "vert") self.sprite_index = habit_vert_sprite; |
| Comme nous le voyons dans cet exemple le script choisit le sprite selon une variable global. Imaginez que le perso peut marcher dans les 4 directions et a trois habits. Ça fait 3X4 = 12 conditions rien que pour le script du perso qui marche. |
| Alors l'idée c'est de définir les sprites spécifiques du personnage dès sa création c'est là que la variable local intervient. |
| // script d'initialisation global.habit_couleur = "rouge"; // script de création du perso if (global.habit_couleur = "rouge") { self.sprite_droite = habit_rouge_sprite_droite; self.sprite_haut = habit_rouge_sprite_haut; self.sprite_gauche = habit_rouge_sprite_gauche; self.sprite_bas = habit_rouge_sprite_bas; } // ... (les autres) // script du choix du sprite selon la direction if (direction = 0) self.sprite_index = self.sprite_droite; if (direction = 90) self.sprite_index = self.sprite_haut; if (direction = 180) self.sprite_index = self.sprite_gauche; if (direction = 270) self.sprite_index = self.sprite_bas; |
| Le script de choix du sprite est réutilisable par d'autre personnages ou monstres. Vous pouvez télécharger le fichier d'exemple. Appuyer 1 pour la tunique vert, et 2 pour la tunique bleu-jaune. |
