Score de Breakout
Fait partie de la section Projets du Journey Godot de Coddy. Leçon 7 sur 33.
Chaque brique vaut 10 points. La balle sait quand elle en casse une, et main.gd tient 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. Régle-la aussi sur Score: 0 dans _ready, sinon elle reste vide jusqu’à la première brique.
Défi
Moyen- Dans
ball.gd, ajoutezsignal brick_brokenet émettez-le lorsqu’une brique se casse. - Dans
main.gd, ajoutezvar score = 0, connectez$Ball.brick_brokenà une fonction qui ajoute 10 et afficheScore: 10,Score: 20, ... dans$HUD/Score. - Affichez
Score: 0au démarrage du jeu.
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)
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Projets
Entraînez-vous par vous-même : Playground Godot