Ausweichen: Noch einmal spielen
Teil des Abschnitts Spielregeln der Godot-Journey von Coddy. Lektion 29 von 29.
Der letzte Schritt ermöglicht es dem Spieler, nach Game Over E zu drücken, um erneut zu spielen.
Das hast du im Stachelraum gemacht. Setze den process_mode von Main auf Node.PROCESS_MODE_ALWAYS, damit sein _process ausgeführt wird, während das Spiel pausiert ist. Der Spieler, beide Timer und jeder Block sind in ihren Szenen auf „Pausierbar“ eingestellt, sodass sie weiterhin angehalten werden. Hebe beim Drücken der Taste die Pause auf und lade die Szene neu:
func _process(delta):
if lives == 0 and Input.is_action_just_pressed("action"):
get_tree().paused = false
get_tree().reload_current_scene()Durch das Neuladen werden alle Blöcke, die Punktzahl und die Leben zurückgesetzt. Zeige bei Game Over außerdem das Label Hint an, damit der Spieler weiß, welche Taste er drücken muss.
Aufgabe
Schwer- Setze in
_ready()denprocess_modedieses Knotens aufNode.PROCESS_MODE_ALWAYS. - Zeige bei Game Over auch
$HUD/Hintan. - Füge
_process()hinzu. Wennlives0 ist undactiongerade gedrückt wurde, hebe die Pausierung des Spiels auf und lade die Szene neu.
Probier es selbst
extends Node2D
var block_scene = preload("res://block.tscn")
var score = 0
var lives = 3
func _ready():
$HUD/Score.text = "Score: %d" % score
$HUD/Lives.text = "Lives: %d" % lives
$SpawnTimer.timeout.connect(_on_spawn_timer_timeout)
$ScoreTimer.timeout.connect(_on_score_timer_timeout)
$Player.hurt.connect(_on_player_hurt)
func _on_spawn_timer_timeout():
var block = block_scene.instantiate()
block.position = Vector2(randf_range(40, 600), -30)
add_child(block)
func _on_score_timer_timeout():
score += 1
$HUD/Score.text = "Score: %d" % score
func _on_player_hurt():
lives -= 1
$HUD/Lives.text = "Lives: %d" % lives
if lives == 0:
$HUD/GameOver.visible = true
get_tree().paused = true
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Spielregeln
6Projekt: Ausweichen
Ausweichen: Fallende BlöckeAusweichen: PunktestandÜbe selbstständig: Godot-Playground