Afficher le nom du joueur, c’est bien, mais comment faire si le nom doit changer ? Beaucoup d’informations sont amenées à varier en cours de jeu, comme le nom du joueur mais aussi la vitesse du personnage, … C’est là qu’interviennent les variables.
Notre première variable
Nous allons créer notre première variable avec Blueprint, j’espère que vous êtes prêt ! Comme pour le chapitre précédent, elle va nous permettre d’afficher le nom du joueur.
Qu'est-ce qu'une variable?
Par exemple, quand vous entrez vos identifiants sur Facebook, ceux-ci sont stockés dans deux variables : une variable qui contient votre pseudo et une autre variable qui contient votre mot de passe.
Comme dit ci-dessus, il existe différents types de variables, je vais vous présenter les plus importants mais il en existe bien plus :
Int : Une variable de type int peut contenir uniquement des nombres entiers comme 28, -54, 913, -64823. On peut par exemple stocker l’âge de quelqu’un ou le nombre d’items qu’un joueur peut porter.
Float :Contrairement aux variables de type int, les variables de type float peuvent contenir des nombres à virgule flottante comme 256,12 ou même -65,12978. On peut par exemple stocker la taille d’un joueur, le temps parcouru par le joueur pour atteindre une zone (jeu de course) etc...
String : Les variables de type string peuvent contenir une chaîne de caractère (un texte) comme par exemple « Zelda » ou « Rien n’est vrai, tout est permis ».
Il en existe beaucoup d’autres et il est même possible de créer ses propres types si besoin. Pour le moment, nous allons commencer doucement puisqu'il s'agit d’afficher une chaine de caractère à l’écran. Comme c’est une chaine de caractère, il faudra la stocker dans une variable de type String.
Créer une variable String
À partir de l’éditeur Blueprint, déjà ouvert lors du chapitre précédent, ajoutez une nouvelle variable en cliquant sur « Add New » dans la section « My Blueprint » puis sur « Variable ». Vous pouvez aussi cliquer directement sur « + » en face de « Variables » comme dans l’exemple ci-dessous.
Une nouvelle variable vient d’être créée, elle devrait normalement se nommer « NewVar_0 ». Cliquez dessus pour obtenir des informations supplémentaires sur cette variable dans la section « Details » située à droite.
Dans cette section, on observe différents paramètres. Les 2 qui nous intéressent sont :
Variable Name qui permet de renommer la variable.
Variable Type qui définit le type de la variable (int, float, string pour ne citer que ceux-là)
Changez le nom de votre variable en « NomJoueur » et changez le type de votre variable en String.
Je vois un type bizarre : Boolean. C’est quoi comme type ?
Les Boolean (ou booléens en français) sont des types variables qui ne peuvent prendre que deux valeurs. Prenons deux exemples différents :
Soit la porte est ouverte, soit elle est fermée.
Soit le joueur a plus de 500 pièces d'or soit le joueur a moins de 500 pièces d'or.
Il n'y a que deux états possibles, vrai ou faux, mais nous, on ne veut pas de variable de type Boolean mais de type String .
Félicitations, vous venez de créer votre première variable! C’est à ce moment-là qu'apparaît le message suivant dans « Default Value » : "Please compile the blueprint".
On vous demande tout simplement de compiler. Pour faire simple, la compilation est une opération qui permet de traduire le code source d’un programme dans un langage compréhensible par votre ordinateur : le format binaire. En effet, votre ordinateur ne fonctionne qu’avec des 0 et des 1. La compilation ne se fait pas automatiquement, il faut donc que vous la lanciez.
Appuyez sur le bouton « Compile » situé en haut dans la fenêtre « Toolbar ».
Nous pouvons à présent définir une valeur par défaut à la variable « NomJoueur ». Mettez le nom que vous voulez.
Après avoir mis un nom (moi j’ai mis « Glados »), essayons d’afficher cette variable dans le jeu. Pour cela, dans la section My Blueprint, maintenez le clic gauche de votre souris sur la variable « NomJoueur » et déplacez-la dans l’Event Graph qui se trouve au milieu de votre écran.
Un choix vous sera alors demandé, soit « Get » soit « Set ». Voici quelques explications :
Get (recevoir en français) permet de récupérer la valeur de la variable. Dans notre cas, nous avons défini une valeur par défaut (« Glados » dans mon cas). En effectuant « Get », on demande la valeur de la variable.
Set (fixer / définir en français) permet de définir une valeur. On pourrait par exemple remplacer « Glados » par « Mario » ou même « Wheatley» si on le souhaite.
Pour rappel, on souhaite afficher la valeur de cette variable, notre choix se portera donc vers un Get. Maintenant que la variable est correctement définie, il faut la relier à l’event et à la fonction pour qu’elle s’affiche.
Les liaisons entre blocs
Avant d’afficher cette variable, il y a une règle assez importante avec Blueprint à garder bien en tête :
Vous avez sans doute vu une flèche blanche sur l'event BeginPlay et vous pouvez également en voir une sur Print String. Cela signifie que les deux s'emboîtent. C’est la même chose avec votre variable « NomJoueur » : vous voyez le rond de couleur rose ? Il signifie qu’il peut s'emboîter avec un autre rond rose.
Actuellement, le rond « InString » de la fonction « Print String » affiche la valeur que vous avez défini au chapitre précédent. Si vous ne liez aucune variable à ce petit rond, c’est ce qu’il continuera d'afficher à l'écran. Nous, nous voulons plutôt afficher notre variable. Faites donc une liaison entre la variable NomJoueur et le rond InString de la fonction Print String comme sur l’exemple ci-dessous. Maintenant In String affichera ce qu’il y a dans la variable NomJoueur.
Vous pouvez maintenant lancer le jeu et constater que votre fonction Print String affiche bien le contenu de la variable "Nom Joueur".
Effectuez des calculs basiques avec des variables
Cette partie sera extrêmement simple et rapide. En effet, nous allons réaliser des additions, des multiplications, divisions, etc. Des calculs basiques, en somme. ;)
Les catégories
Votre personnage a un nom et c’est un bon début. Ne nous arrêtons pas là, je suis sûr que vous pouvez imaginer d’autres caractéristiques pour lui ! Dans le cas d’un FPS, qui est un jeu de combat, le personnage du joueur est caractérisé par ses points de vie (qu’il perd régulièrement) et ses points d’attaque. Si vous préférez innover et doter votre joueur de point d’amour et de paix, rien ne vous en empêche. ;)
Dans le Level Blueprint, créez deux variables supplémentaires :
Type de variable | Nom de la variable | Valeur par défaut |
Float | Attaque | 12.584 |
Integer (int) | Vie | 10 |
Pour bien organiser vos variables, vous avez la possibilité de les regrouper dans des catégories. Dans notre cas cela peut sembler inutile car nous avons très peu de variables mais pour les plus gros programmes avec des dizaines voir des centaines de variables, vous verrez que cette technique permet de gagner en clarté et en efficacité.
Pour l’exemple, nous allons renommer la catégorie « Default » en « Joueur ». Nous affecterons cette catégorie à toutes nos variables personnalisées liées au joueur (NomJoueur, Vie et Attaque).
Si vous avez bien suivi, vous savez que c’est le moment de relier les variables à l’event et à la fonction. Seulement, nous avons un petit problème : les couleurs ne correspondent pas. Il va donc falloir convertir certaines variables
Les conversions
Par exemple, il est possible de transformer une variable de type int en une variable de type string. Essayons !
Dans votre Level Blueprint, cassez la liaison entre la variable « NomJoueur » et la fonction « Print String ». Pour cela, placez le pointeur de votre souris sur l’un des connecteurs de la liaison à casser puis entrez la combinaison suivante : touche Alt + Clic gauche (voir encadré rouge du screen ci-dessous).
Si ce n’est pas déjà fait, placez les deux variables « Attaque » et « Vie » dans l’Event Graph en sélectionnant l’option Get. Reliez ensuite la variable Attaque à la fonction « Print String ». La conversion est automatiquement créée.
Si vous compilez et que vous lancez le jeu, vous constaterez que c’est maintenant la valeur de la variable « Attaque » qui s’affiche à l’écran.
À présent, nous allons additionner des variables entre elles.
Les opérations
Cassez de nouveau la liaison entre la variable « Attaque » et la fonction « Print String » avec Alt + Clic Gauche. Ensuite, sélectionnez le block puis supprimez la conversion avec la touche « Suppr » de votre clavier.
À partir de la variable « Attaque », affichez la liste des fonctions possibles et tapez dans la barre de recherche « + » pour ensuite sélectionner « Float + Float ».
Liez ensuite votre variable « Vie » à l’opération qui additionne. En effectuant cette action, vous convertirez votre variable int en float. Ensuite, liez le résultat de cette addition à Print String.
À présent, lancez le jeu et observez le résultat du calcul.
Que s’est-il passé ? Nous avons additionné la valeur de la variable de type float « Attaque » avec la variable de type int « Vie » et nous avons demandé d’afficher le résultat à l’écran sous la forme d’une chaîne de caractères (string). Soit (Attaque : 12.548) + (Vie : 10) = (Print String : 22.584).
Le compte est bon ! Sachez-le, la programmation, ce n’est que des additions, des soustractions, multiplications, divisions ou des modulos ! Après tout, votre ordinateur n’est qu’une grosse calculette.
Pour effectuer une simple multiplication, tapez « * » dans la barre de recherche, pour une division « / », pour une soustraction « - » et pour un modulo « % ». Le modulo correspond au reste de la division.
En résumé
Désormais, vous savez...
Créer et intégrer une variable
Définir une valeur par défaut dans une variable.
Réaliser des calculs basiques comme une addition, multiplication etc.
Vous êtes capable de convertir une variable de type Float, Int en String
Bravo à vous ! Nous allons continuer avec Blueprint. :) Dans le prochain chapitre nous parlerons des structures conditionnelles !