Menu
CoddyTech

Vidas de Breakout

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

Cuando la paleta no alcanza la pelota, esta cae por la parte inferior. Dale al jugador tres vidas.

En ball.gd, si la pelota está por debajo de y = 380, significa que no se alcanzó. Emite una señal missed y vuelve a sacar la pelota por encima de la paleta:

if position.y > 380:
	missed.emit()
	position = Vector2(320, 290)
	velocity = Vector2(110, -280)

En main.gd, escucha esa señal de la misma manera que escuchas brick_broken. La función que llama resta una vida y muestra el nuevo recuento, igual que la función de puntuación hace con los puntos.

challenge icon

Desafío

Difícil

Dale al jugador tres vidas.

  1. En ball.gd, añade signal missed. Debajo de y = 380, emítela y vuelve a sacar la pelota como se muestra arriba.
  2. En main.gd, añade var lives = 3 y muestra Lives: 3 en $HUD/Lives.
  3. Conecta $Ball.missed con _on_missed, que resta una vida y la muestra.

Pulsa «Jugar» y falla la pelota: la etiqueta muestra Lives: 2 y aparece una pelota nueva. 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

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"

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

Todas las lecciones de Proyectos

Practica por tu cuenta: Playground de Godot