Menu
CoddyTech

Rohre nach Zeitplan

Teil des Abschnitts Projekte der Godot-Journey von Coddy. Lektion 21 von 33.

Als Nächstes kommen die Rohre. Ein Rohr ist eine Szene, pipe.tscn: eine obere und eine untere Hälfte mit einer Lücke dazwischen. In pipe.gd gleitet es mit SPEED Pixeln pro Sekunde nach links. Sobald es den linken Rand passiert, entfernt es sich selbst, damit sich keine alten Rohre ansammeln:

position.x -= SPEED * delta
if position.x < -60:
	queue_free()

Die Szene hat einen Timer namens PipeTimer, der alle 1.6 Sekunden ausgelöst wird. Verbinde in main.gd sein timeout-Signal und erstelle ein Rohr hinter dem rechten Rand:

func _on_pipe_timer_timeout():
	var pipe = PIPE.instantiate()
	pipe.position = Vector2(700, 180)
	$Pipes.add_child(pipe)

Godot zeichnet Knoten in der Reihenfolge des Baums. Pipes kommt vor Ground, daher verdeckt der Boden den unteren Teil jedes Rohrs.

challenge icon

Aufgabe

Mittel
  1. Füge in pipe.gd const SPEED = 160 hinzu. Bewege das Rohr in jedem Physik-Frame nach links und entferne es, sobald position.x kleiner als -60 ist.
  2. Füge in main.gd const PIPE = preload("res://pipe.tscn") hinzu und verbinde $PipeTimer.timeout. Erzeuge bei jedem Timeout ein Rohr bei (700, 180) im Knoten Pipes.

Probier es selbst

extends Node2D

func _ready():
	pass
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