Le score
Fait partie de la section Projets du Journey Godot de Coddy. Leçon 7 sur 36.
Chaque brique vaut 10 points. La balle sait quand elle en casse une, et main.gd conserve le score. Un signal les relie. La balle l’émet pour chaque brique cassée, et le script principal l’écoute.
Dans ball.gd, déclare le signal en haut et émets-le à côté de smash() :
signal brick_broken
# dans _on_body_entered, après body.smash() :
brick_broken.emit()Dans main.gd, connecte-le dans _ready et ajoute les points dans la fonction qu’il appelle :
func _on_brick_broken():
score += 10
$HUD/Score.text = "Score: %d" % scoreL’étiquette se trouve dans un CanvasLayer appelé HUD. Définis-la aussi sur Score: 0 dans _ready, sinon elle reste vide jusqu’à ce que la première brique soit cassée.
Défi
MoyenGagne 10 points pour chaque brique.
- Dans
ball.gd, ajoutesignal brick_brokenet émets-le lorsqu’une brique se casse. - Dans
main.gd, ajoutevar score = 0et afficheScore: 0dans$HUD/Scoredans_ready. - Connecte
$Ball.brick_brokenà une fonction qui ajoute 10 et affiche le score.
Appuie sur « Jouer » et casse une brique : l’étiquette affiche Score: 10. Ensuite, appuie sur « Vérifier ».
Essayez vous-même
extends Node2D
const BRICK = preload("res://brick.tscn")
const COLORS = [Color(1, 0.42, 0.42), Color(1, 0.78, 0.34), Color(0.49, 0.95, 0.75), Color(0.369, 0.635, 1), Color(0.75, 0.82, 0.95)]
func _ready():
for row in 5:
for column in 8:
var brick = BRICK.instantiate()
brick.position = Vector2(68 + column * 72, 60 + row * 26)
brick.color = COLORS[row]
add_child(brick)
Toutes les leçons de Projets
Entraînez-vous par vous-même : Playground Godot