Breakout-Punktzahl
Teil des Abschnitts Projekte der Godot-Journey von Coddy. Lektion 7 von 33.
Jeder Stein ist 10 Punkte wert. Der Ball weiß, wann er einen Stein zerstört, und main.gd führt den Punktestand. Ein Signal verbindet sie. Der Ball sendet es für jeden zerstörten Stein aus, und das Hauptskript hört darauf.
Deklariere das Signal in ball.gd ganz oben und sende es neben smash() aus:
signal brick_broken
# in _on_body_entered, nach body.smash():
brick_broken.emit()Verbinde es in main.gd in _ready und addiere die Punkte in der aufgerufenen Funktion:
func _on_brick_broken():
score += 10
$HUD/Score.text = "Score: %d" % scoreDas Label befindet sich in einem CanvasLayer namens HUD. Setze es auch in _ready auf Score: 0, sonst bleibt es bis zum ersten Stein leer.
Aufgabe
Mittel- Füge in
ball.gdsignal brick_brokenhinzu und löse das Signal aus, wenn ein Stein zerbricht. - Füge in
main.gdvar score = 0hinzu, verbinde$Ball.brick_brokenmit einer Funktion, die den Wert um 10 erhöht undScore: 10,Score: 20, ... in$HUD/Scoreanzeigt. - Zeige
Score: 0an, wenn das Spiel startet.
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)]
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)
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Projekte
Übe selbstständig: Godot-Playground