Mit zehn Rohren gewinnen
Teil des Abschnitts Projekte der Godot-Journey von Coddy. Lektion 28 von 36.
Der Spieler kann verlieren, aber noch nicht gewinnen. Bei einem Punktestand von 10 zeige You win! an und pausiere das Spiel. Teste das an der Stelle, an der der Punktestand erhöht wird:
if score == 10:
$HUD/Message.text = "You win!"
get_tree().paused = trueErmögliche zuletzt, dass der Spieler erneut spielen kann. Wenn das Spiel pausiert ist, lädt die Leertaste die Szene neu. Main ist auf „Always“ eingestellt, daher wird _process weiterhin ausgeführt:
func _process(delta):
if get_tree().paused and Input.is_action_just_pressed("jump"):
get_tree().paused = false
get_tree().reload_current_scene()Die Leertaste ist auch die Flattertaste. Der Flieger ist auf „Pausable“ eingestellt und ignoriert daher den Tastendruck, solange das Spiel pausiert ist.
Aufgabe
MittelSchaffe zehn Röhren und spiele erneut.
- Wenn der Punktestand
10erreicht, zeigeYou win!in$HUD/Messagean und pausiere das Spiel. - Drücke während der Pause die Leertaste (
jump), um die Pause aufzuheben und die Szene neu zu laden.
Drücke „Spielen“ und schaffe zehn Röhren: „You win!“ wird angezeigt. Mit der Leertaste startest du erneut. Drücke dann „Prüfen“.
Probier es selbst
extends Node2D
const PIPE = preload("res://pipe.tscn")
var score = 0
func _ready():
$PipeTimer.timeout.connect(_on_pipe_timer_timeout)
$Flyer.crashed.connect(_on_crash)
$HUD/Score.text = "0"
func _on_pipe_timer_timeout():
var pipe = PIPE.instantiate()
pipe.position = Vector2(700, randf_range(100, 250))
pipe.hit.connect(_on_crash)
pipe.scored.connect(_on_scored)
$Pipes.add_child(pipe)
func _on_crash():
$HUD/Message.text = "Game Over"
get_tree().paused = true
func _on_scored():
score += 1
$HUD/Score.text = str(score)
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