Menu
CoddyTech

Rohre nach Zeitplan

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

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 überschritten hat, 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

Lass Rohre über den Bildschirm fliegen.

  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.
  3. Erzeuge bei jedem Timeout ein Rohr bei (700, 180) im Pipes-Knoten.

Drücke „Spielen“: Die Rohre gleiten von rechts herein. Dann „Prüfen“.

Probier es selbst

extends Node2D

func _ready():
	pass

Alle Lektionen in Projekte

Übe selbstständig: Godot-Playground