Menu
CoddyTech

Dégager le mur

Fait partie de la section Projets du Journey Godot de Coddy. Leçon 9 sur 33.

La dernière étape consiste à trouver un moyen de gagner : casser toutes les briques.

Compte les briques restantes. Commence à 40 et enlève-en une chaque fois que brick_broken arrive. Quand il n’en reste plus, le mur est dégagé :

bricks_left -= 1
if bricks_left == 0:
	$HUD/Message.text = "You Win!"
	get_tree().paused = true

Enlève-en une avant de vérifier si le nombre est égal à zéro. Si tu vérifies d’abord, le test voit 1 pour la dernière brique et ne voit jamais 0.

La touche Entrée permet aussi de démarrer une nouvelle partie depuis l’écran Game Over. Ton jeu Breakout est terminé.

challenge icon

Défi

Moyen

Dans main.gd :

  1. Ajoute var bricks_left = 40.
  2. Chaque brique cassée en enlève une.
  3. Lorsqu'il n'en reste plus, affiche You Win! dans $HUD/Message et mets le jeu en pause.

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)]

var score = 0
var lives = 3

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)
	$Ball.brick_broken.connect(_on_brick_broken)
	$HUD/Score.text = "Score: 0"
	$Ball.missed.connect(_on_missed)
	$HUD/Lives.text = "Lives: 3"

func _process(delta):
	if get_tree().paused and Input.is_action_just_pressed("action"):
		get_tree().paused = false
		get_tree().reload_current_scene()

func _on_brick_broken():
	score += 10
	$HUD/Score.text = "Score: %d" % score

func _on_missed():
	lives -= 1
	$HUD/Lives.text = "Lives: %d" % lives
	if lives == 0:
		$HUD/Message.text = "Game Over"
		get_tree().paused = true
quiz iconTestez-vous

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