Für ein Rohr punkten
Teil des Abschnitts Projekte der Godot-Journey von Coddy. Lektion 24 von 33.
Jedes Rohr, das du passierst, zählt einen Punkt. Das Rohr hat ein untergeordnetes Area2D namens Gap, einen schmalen Streifen hinter der Öffnung. Der Flieger berührt ihn erst, nachdem er hindurchgeflogen ist – dann erhältst du einen Punkt.
Verbinde in pipe.gd das Signal des untergeordneten Knotens über $Gap und löse scored aus:
$Gap.body_entered.connect(_on_gap_body_entered)
func _on_gap_body_entered(body):
scored.emit()Verbinde in main.gd das Signal scored jedes neuen Rohrs. Addiere eins zu score und zeige den Wert in $HUD/Score an. str(score) wandelt die Zahl in Text um. Zeige zu Beginn 0 an.
Aufgabe
Mittel- Füge in
pipe.gdsignal scoredhinzu. Verbinde$Gap.body_enteredund lösescoredaus, wenn ein Körper in die Lücke eintritt. - Füge in
main.gdvar score = 0hinzu und zeige zu Beginn0in$HUD/Scorean. - Verbinde bei jeder Röhre
scoredmit einer Funktion, die eins hinzufügt und den neuen Punktestand anzeigt.
Probier es selbst
extends Area2D
signal hit
const SPEED = 160
func _ready():
body_entered.connect(_on_body_entered)
func _physics_process(delta):
position.x -= SPEED * delta
if position.x < -60:
queue_free()
func _on_body_entered(body):
hit.emit()
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Projekte
3Projekt: Flatterflieger
Schwerkraft für den FliegerDen Flieger flattern lassenÜbe selbstständig: Godot-Playground