Menu
CoddyTech

Mit zehn Rohren gewinnen

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

Der Spieler kann verlieren, aber noch nicht gewinnen. Zeige bei einem Punktestand von 10 You Win! an und pausiere das Spiel. Teste das dort, wo der Punktestand steigt:

if score == 10:
	$HUD/Message.text = "You Win!"
	get_tree().paused = true

Zum Schluss soll der Spieler erneut spielen können. Wenn das Spiel pausiert ist, lädt die Leertaste die Szene neu. Main ist Always, daher läuft _process weiterhin:

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 Pausable und ignoriert daher den Tastendruck, solange das Spiel pausiert ist.

challenge icon

Aufgabe

Mittel
  1. Wenn der Punktestand 10 erreicht, zeige You Win! an und pausiere das Spiel.
  2. Während das Spiel pausiert ist, hebt die Leertaste (jump) die Pause auf und lädt die Szene neu.

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