Menu
CoddyTech

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.

challenge icon

Aufgabe

Mittel
  1. Füge in pipe.gd signal scored hinzu. Verbinde $Gap.body_entered und löse scored aus, wenn ein Körper in die Lücke eintritt.
  2. Füge in main.gd var score = 0 hinzu und zeige zu Beginn 0 in $HUD/Score an.
  3. Verbinde bei jeder Röhre scored mit 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()
quiz iconTeste dich selbst

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