En attendant de développer davantage mon jeu et de trouver une bonne idée, je continue mon exploration du GML (langage de programmation propre à Game Maker Studio) avec comme objectif aujourd’hui d’ajouter une interface graphique autour de la ROOM. Pour ce faire, il faut maîtriser deux choses, l’ajout de sprite et de texte à l’écran.

J’ai mis la main sur série de trois tutos vidéos sur Youtube en anglais, mais qui même si vous ne comprenez pas l’anglais, reste compréhensible, il suffit de lire le code et regarder le résultat. D’ailleurs je vous invite à consulter sa chaine Youtube, il y a plusieurs vidéos qui semblent très intéressantes.

Voici les trois vidéos en question du même youtubeur :

  1. GameMaker – GUIs & HUDs : Avec cette vidéo, vous allez apprendre à placer des éléments sur votre écran pour construire votre interface et votre HUD.
  2. GameMaker – Custom Healthbars : Ici c’est une continuité, bien qu’il semble l’avoir construite avant, il s’agit d’une barre de vie personnalisable.
  3. GameMaker – Enemy Healthbars : Et enfin comme on parle d’interface, je voudrais bien afficher la vie de chaque GG et CRS au dessus du personnage.

Ce sont là, trois tutos qui pourraient vous être utile si vous voulez, vous aussi intégrer une interface à votre projet de jeu. Personnellement, je me suis intéressé surtout à la vidéo 1 et 3.

Pour commencer la première des choses que l’on doit faire est de créer un objet qui va permettre de rassembler tout le code de l’interface graphique, lui le nomme cont_main (pour contrôle principal), perso je vais y aller avec ctrl_gui. N’oubliez pas de le placer sur un calque d’instance pour que cela fonctionne.

Je veux afficher le nombre d’instances des GG et CRS présents sur la ROOM, pour cela, je vais dans l’événement STEP pour ajouter une fonction qui va se mettre à jour à chaque frame, c’est assez simple :

totalGG = instance_number(obj_gg);
totalCRS = instance_number(obj_crs);

Puis, vous devez créer un événement DRAW GUI pour afficher du texte, avec ces trois lignes là :

draw_set_color(c_white);
draw_text(100,20,"Gilets Jaunes : " + string(totalGG));
draw_text(room_width-70,20,"CRS : " + string(totalCRS));

Une ligne pour écrire en blanc et les autres lignes pour positionner à 100 pixels sur les X et 20 sur les Y pour le nombre de GG et pour les CRS : le X est égal à la taille de la ROOM – 70 pixels, et 20 pixels en partant du haut (y).

Vous pouvez voir un contour jaune, que j’ai ajouté sous forme d’image que j’ai déposé sur un autre « background » au dessus de tous les calques.

Petite précision toutefois, si vous voulez vous assurer que votre texte s’affichera au dessus de tous les autres objets de l’interface, ajoutez cette ligne dans l’événement CREATE :

depth = 10000;

Voilà c’était un petit tuto rapide pour avoir un début d’interface et s’amuser avec les nouvelles fonctions.