I. Sommaire▲
Vous pouvez retrouver les autres épisodes de cette série dans le sommaire dédié.
II. Vidéo▲
Godot - Marble Madness 3D - Afficher le score
III. Résumé▲
Maintenant que nous pouvons ramasser les bonus, nous devons les compter et les afficher pour notre joueur.
III-A. Interface utilisateur▲
Pour afficher un texte à l'écran, nous utilisons l'élément d'interface utilisateur « Label ».
À l'aide des propriétés, vous pouvez placer l'élément où vous le souhaitez. Pour vous aider, vous pouvez utiliser les ancres. Les marges (« Margin ») sont relatives par rapport aux valeurs des ancres.
III-B. Mettre à jour le texte▲
Dans le script du joueur, nous allons rajouter du code pour mettre à jour le compteur du nombre d'objets à collectionner.
Pour cela, nous ajoutons deux variables :
# Compteur des objets à collectionner
var count
# Nœud du Label de l'interface utilisateur
var counter
Ensuite, dans la fonction _ready(), nous initialisons les nouvelles variables :
# le compteur est à 0
count =
0
# Nous récupérons le nœud du Label
counter =
get_node
(
"/root/World/Counter"
)
# Met à jour l'interface
update_ui
(
)
Dans l'éditeur, le nœud du « Label » a été renommé « Counter ». Ainsi, il est plus facilement identifiable si nous avons plusieurs « Label », mais aussi, le code en devient plus évident.
Nous avons la variable, mais il est aussi nécessaire de la mettre à jour. Cela se passe évidemment au moment où l'on touche l'objet à collectionner (et qu'on l'enlève), donc, dans la fonction _on_Player_body_enter(). Nous rajoutons simplement le code pour incrémenter la variable et mettre à jour l'interface :
# Incrémenter le compteur
count =
count +
1
update_ui
(
)
Finalement, il faut mettre à jour le texte présent dans l'interface utilisateur :
func update_ui
(
):
# Redéfinit le texte du compteur
counter.set_text
(
"COUNT: "
+
str(
count) )
III-C. Afficher un message lorsque tous les éléments ont été ramassés▲
Nous souhaitons afficher un message de félicitation lorsque le joueur a ramassé tous les éléments. Pour ce faire, nous utilisons un second élément « Label » que l'on appelle « Winner ». Configurez ce nouvel élément.
Comme pour le « Label » précédent, nous rajoutons une variable nommée « winner » qui contiendra le nœud du nouvel élément (initialisée dans la fonction _ready()).
Finalement, le code suivant est rajouté dans la fonction ui_update() :
# Suivant la valeur du compteur, le texte sera soit vide, soit il affichera le texte de victoire.
var winner_text =
""
if
count ==
10
:
winner_text =
"YOU WIN!"
winner.set_text
(
winner_text)
IV. Commenter▲
Vous pouvez commenter et donner vos avis dans la discussion associée sur le forum.