Unikaj przeszkód: Zagraj ponownie
Część sekcji Zasady gry ścieżki Godot w Coddy. Lekcja 29 z 29.
Ostatni krok pozwala graczowi nacisnąć E po zakończeniu gry, aby zagrać ponownie.
Zrobiłeś to w pokoju z kolcami. Ustaw Main's process_mode na Node.PROCESS_MODE_ALWAYS, aby jego _process działała, gdy gra jest wstrzymana. Gracz, oba timery i każdy blok mają w swoich scenach ustawiony tryb Pausable, więc nadal się zatrzymują. Po naciśnięciu klawisza wznów grę i załaduj scenę ponownie:
func _process(delta):
if lives == 0 and Input.is_action_just_pressed("action"):
get_tree().paused = false
get_tree().reload_current_scene()Ponowne załadowanie usuwa wszystkie bloki, wynik i życia. Pokaż też etykietę Hint po zakończeniu gry, aby gracz wiedział, który klawisz nacisnąć.
Wyzwanie
Trudny- W funkcji
_ready()ustawprocess_modetego węzła naNode.PROCESS_MODE_ALWAYS. - Po zakończeniu gry pokaż również
$HUD/Hint. - Dodaj
_process(). Gdyliveswynosi 0 i właśnie naciśniętoaction, wznów grę i ponownie załaduj scenę.
Spróbuj swoich sił
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
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Zasady gry
6Projekt: Unikaj przeszkód
Unikaj przeszkód: Spadające blokiUnikaj przeszkód: WynikPoćwicz samodzielnie: Edytor online Godot