Menu
CoddyTech

Despeja el muro

Parte de la sección Proyectos del Journey de Godot de Coddy. Lección 10 de 36.

El último paso es establecer una forma de ganar: rompe todos los ladrillos.

Cuenta los ladrillos que quedan. Empieza en 40 y resta uno cada vez que llegue brick_broken. Cuando llegue a cero, el muro estará despejado:

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

Resta uno antes de comprobar si es cero. Si compruebas primero, la comprobación verá 1 al romper el último ladrillo y nunca verá 0.

La tecla Enter también inicia una partida nueva desde Game Over. Tu Breakout está completo.

challenge icon

Desafío

Intermedio

Gana la partida rompiendo todos los ladrillos.

  1. En main.gd, añade var bricks_left = 40.
  2. En _on_brick_broken, resta uno a bricks_left.
  3. Cuando no quede ninguno, muestra You win! en $HUD/Message y pausa la partida.

Pulsa «Jugar» y despeja la pared: aparece You win! y la pelota se detiene. Después, pulsa «Comprobar».

Pruébalo tú mismo

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 iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Proyectos

Practica por tu cuenta: Playground de Godot