Menu
CoddyTech

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" % score

L’é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.

challenge icon

Défi

Moyen

Gagne 10 points pour chaque brique.

  1. Dans ball.gd, ajoute signal brick_broken et émets-le lorsqu’une brique se casse.
  2. Dans main.gd, ajoute var score = 0 et affiche Score: 0 dans $HUD/Score dans _ready.
  3. 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