Scripts, variables et fonctions dans GameMaker : Studio

Game Maker : Studio et l'IDE qu'il nous fournit, nous pouvons créer des jeux vidéo rapidement et facilement, nous offrant une interface conviviale et claire qui nous fournit également des outils qui nous aident à développer nos jeux.

L'un de ces outils est GML ou alors Langage GameMaker, qui étend beaucoup plus les fonctionnalités de notre environnement et nous permet, via des scripts, d'écrire notre propre code pour le projet, que nous utiliserons avec le reste des éléments pour le développement de nos applications.

Création de scripts
Avant de passer à quelques lignes de code, nous allons jeter un œil aux sites où nos scripts sont présents, nous donnant un aperçu de ce que nous pouvons en faire en fonction de la situation.

Script dans un événement


Dans un objet, il y a des événements qui lui sont associés, où ces événements peuvent contenir un script ou contenir une action qui appelle l'un d'entre eux. Ce sera la seule fois où la fonctionnalité Drag and Drop sera utilisée pour les scripts.

À ajouter un script à un événement, nous devons d'abord créer un objet à partir de notre menu de ressources et une fois créé, nous utilisons le bouton ajouter un évènement pour le créer :

AGRANDIR

Après cette action, nous allons à notre onglet contrôler et dans la rubrique Code, nous allons faire glisser la première icône qui ressemble à une feuille de papier vers le Actions et nous publierons, cette action créera notre script et nous pourrons commencer à écrire nos lignes de code :

AGRANDIR

Création de scripts en tant que ressources


Pour créer un script en tant que ressource, nous allons dans notre menu ressource et sélectionnons Créer un scénario, où une fois le script créé, il apparaîtra dans l'arborescence des ressources sous la section correspondante :

AGRANDIR

Nous avons plusieurs manières de créer un script et chacune d'elles a ses avantages, dans le cas d'un script en tant que ressource les conditions suivantes sont les plus utiles :

  • Lorsque de nombreux objets utilisent la fonctionnalité
  • Lorsqu'une fonction nécessite plusieurs entrées de données ou arguments.
  • Lorsque des actions globales telles que load et save sont utilisées.
  • Lors de la mise en œuvre d'une logique ou d'algorithmes complexes.

Scripts dans les chambres


Les pièces ou les salles sont l'endroit où des ressources spécifiques sont placées et où le jeu est joué. Ces ressources peuvent être créées comme n'importe quelle autre à partir du menu correspondant avec Créer une chambre:

AGRANDIR

Ces pièces ou pièces peuvent également contenir des scripts, pour cela lorsque nous éditons une pièce, nous allons dans l'onglet Paramètres dans les propriétés de la pièce et là nous devrions voir le bouton Création de codes:

Appuyer sur ce bouton créera un script vierge associé à cette salle qui sera exécuté une fois qu'un joueur charge la salle, ceci avant qu'un objet ne déclenche son propre événement.

Scripts GML
Une fois que nous savons où nous pouvons créer notre scripts et à quelles ressources les associer est le temps de connaître les parties qui composent nos scripts et les concepts que nous devons maîtriser, voyons voir.

Programmes


Un programme en GML est une série d'instructions qui suivent un ordre spécifique, où l'on peut dire que tout script à l'intérieur GML est un programme où ces programmes sont généralement fermés par des accolades, voyons un exemple :
 {str_text = "Bonjour tout le monde"; x + = 10 ; if (x> 200) {str_text = "Bonjour Solvetic" ; }}
Comme on peut le voir, c'est un programme simple où l'on fait l'instance d'une variable de type string, puis on définit que chaque frame ou 10 unités sont ajoutées à X et enfin une condition selon laquelle si x est supérieur à 200, l'affectation est à nouveau effectuée.

Il est important de mentionner que le point-virgule n'est pas nécessaire, cependant pour GML il est recommandé de l'utiliser pour améliorer la lecture du code. Il est également conseillé de ne pas utiliser de majuscules et que si une variable doit être composée de deux mots, utilisez le trait de soulignement.

Variables
Les variables dans GML Ce sont eux qui nous permettent de représenter des valeurs et, contrairement au reste de certains langages de programmation, ils ne sont pas strictement d'un seul type, c'est-à-dire qu'ils n'ont pas à représenter une structure de données spécifique. Cependant, ces variables peuvent représenter l'un de ces deux types :

  • Un nombre réel peut être 200 ou 5 356. Ces entiers peuvent également correspondre à une instance particulière d'un objet, d'une salle, d'un script ou d'un autre type de ressource.
  • Une chaîne représentant une collection de caractères alphanumériques qui sont régulièrement utilisés pour afficher du texte tel que : « Hello World ».

Préfixes variables


Comme mentionné ci-dessus, les variables peuvent correspondre à tout type de données, voire à tout type de ressources, mais pour résoudre ce problème, nous avons les préfixes des variables, qui nous permettent d'identifier le type de données qu'elles contiennent. Ce n'est pas obligatoire, mais c'est une convention pour pouvoir mieux travailler en GML, par exemple si on a str_player_name On saura déjà qu'il s'agit d'une chaîne, voyons les préfixes que l'on peut utiliser :
  • str : chaîne
  • spr: Sprites
  • snd : sons
  • bg : arrière-plans
  • pth : itinéraires
  • scr : scripts
  • fnt : Polices
  • tml : chronologie
  • obj : objet
  • chambre : chambre
  • ps : système de particules
  • ex : émetteur de particules
  • pt : Type de particules
  • ev : événement

Portée des variables


Dans nos scripts, les variables ont des portées différentes, ce qui signifie que la manière dont nous pouvons accéder aux variables et définir les valeurs peut varier. Voyons les différentes portées que nous avons :

Exemple


Ces variables sont propres à l'instance ou aux copies de chaque objet. Ils peuvent être consultés et définis par eux-mêmes et par d'autres objets, étant les plus courants dans GML.

local


Ce sont ceux qui n'existent qu'au sein d'une fonction ou d'un script, ils sont déclarés à l'aide du mot réservé var et ils ne sont accessibles que dans les scripts dans lesquels ils sont définis.

Global


Une variable globale est accessible par n'importe quel objet via un script, elle appartient au jeu et non à l'instance individuelle de l'instance d'objet.

Constantes


Les constantes sont des variables dont les valeurs ne peuvent être que lues et non modifiées, elles peuvent être globales voire instanciées.

Puisque nous connaissons les différents types de portées des variables, voyons un petit exemple de la façon dont nous réalisons l'affectation selon la portée :

 // cas 1 var a = 1; // cas 2 globalvar b; b = 2; // cas 3 global.c = 10; // cas 4 self.x = 10; // cas 5 y = 10;
Pour le premier cas, nous avons un variable locale, ceci est facilement identifié par l'utilisation du mot réservé var. Dans le second cas, on a la déclaration d'un variable globale et votre mission. Pour le cas 3, il s'agit d'une autre façon de déclarer et d'attribuer un variable globale et enfin pour les cas 4 et 5 sont variables d'instance mais l'un d'eux à travers soi et l'autre non.

Variables de langue


Enfin, au sujet des variables, nous avons des variables globales et d'instance qui sont fournies par Game Maker : Studio pour chaque objet, comme x, sprite ou index pour n'en citer que quelques-uns. Mais il y a les variables de langue qui sont aussi globales comme santé ou la santé, But ou marquer et vies ou vit. L'utilisation de ces variables dépend de chaque développeur, nous pouvons donc décider de nous en passer, mais ces noms les rendent beaucoup plus faciles à retenir et à appliquer dans nos programmes.

Caractéristiques
Ongle une fonction dans GML, c'est une fonctionnalité qui vous permet d'exécuter un programme, il peut venir par défaut dans le langage ou il peut être créé en tant que ressource de type script.

Ces fonctions peuvent exécuter une action telle que changer l'alignement d'une police pendant l'événement de dessin, retourner une valeur ou faire les deux, où ces fonctions doivent être suivies de parenthèses et, si nécessaire, de certains arguments pour leur fonctionnement. Regardons quelques lignes de code pour voir le comportement de certaines fonctions :

 // cas 1 draw_self (); // cas 2 draw_arrow (0,0,100,100,2); // cas 3 valeur_aléatoire = aléatoire (10, 23);
Pour le cas numéro 1, nous avons une fonction simple qui dessine une instance, le cas numéro 2 est une fonction qui exécute une action et nécessite des arguments pour fonctionner, enfin nous avons une fonction qui exécute une action, qui consiste à obtenir une valeur aléatoire et à retourner en une variable.

Il y a un cas particulier qui est script_execute, qui est une fonction qui nous permet d'accéder aux scripts créés en tant que ressources, et la particularité est qu'elle nous permet d'utiliser les variables de notre script puis de l'exécuter :

 self.script = scr_script_recourse; script_execute (self.script, "argument", obj_button, 0.12, false);
Comment pouvons-nous voir le spectre de Game Maker : Studio s'étend bien au-delà de son interface, nous disposons d'un outil puissant tel que GML, qui contient des éléments familiers aux développeurs tels que des variables ou des fonctions, et grâce à cela, nous pouvons appliquer nos connaissances en développement au développement de nos projets et jeux.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave