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.
Aufgabe
MittelLass Rohre über den Bildschirm fliegen.
- Füge in
pipe.gdconst SPEED = 160hinzu. Bewege das Rohr in jedem Physik-Frame nach links und entferne es, sobaldposition.xkleiner als-60ist. - Füge in
main.gdconst PIPE = preload("res://pipe.tscn")hinzu und verbinde$PipeTimer.timeout. - Erzeuge bei jedem Timeout ein Rohr bei
(700, 180)imPipes-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
3Projekt: Flatterflieger
Schwerkraft für den FliegerDen Flieger flattern lassenÜbe selbstständig: Godot-Playground