Menu
CoddyTech

Breakout-Leben

Teil des Abschnitts Projekte der Godot-Journey von Coddy. Lektion 8 von 36.

Wenn der Schläger den Ball verfehlt, fällt der Ball unten hinaus. Gib dem Spieler drei Leben.

In ball.gd wurde ein Ball unterhalb von y = 380 verfehlt. Sende ein missed-Signal und bringe den Ball erneut oberhalb des Schlägers ins Spiel:

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

Höre in main.gd darauf, so wie du auf brick_broken hörst. Die aufgerufene Funktion zieht ein Leben ab und zeigt den neuen Stand an, so wie die Punktzahlfunktion die Punkte anzeigt.

challenge icon

Aufgabe

Schwer

Gib dem Spieler drei Leben.

  1. Füge in ball.gd signal missed hinzu. Löse es unter y = 380 aus und serviere den Ball wie oben gezeigt erneut.
  2. Füge in main.gd var lives = 3 hinzu und zeige Lives: 3 in $HUD/Lives an.
  3. Verbinde $Ball.missed mit _on_missed, das ein Leben abzieht und es anzeigt.

Drücke „Spielen“ und verfehle den Ball: Das Label zeigt Lives: 2 an und ein neuer Ball erscheint. Drücke dann „Prüfen“.

Probier es selbst

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

Alle Lektionen in Projekte

Übe selbstständig: Godot-Playground