Godot - Marble Madness 3D

Afficher le score

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

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 :

 
Sélectionnez
# 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 :

 
Sélectionnez
    # 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 :

 
Sélectionnez
        # Incrémenter le compteur
        count = count + 1
        update_ui()

Finalement, il faut mettre à jour le texte présent dans l'interface utilisateur :

 
Sélectionnez
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() :

 
Sélectionnez
    # 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.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

En complément sur Developpez.com

  

Copyright © 2015 Kwesi Davis. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.