Menu
CoddyTech

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 = true

Ermö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.

challenge icon

Aufgabe

Mittel

Schaffe zehn Röhren und spiele erneut.

  1. Wenn der Punktestand 10 erreicht, zeige You win! in $HUD/Message an und pausiere das Spiel.
  2. 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)
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