Dziesięć rur do zwycięstwa
Część sekcji Projekty ścieżki Godot w Coddy. Lekcja 28 z 36.
Gracz może przegrać, ale jeszcze nie może wygrać. Gdy wynik wyniesie 10, wyświetl You win! i wstrzymaj grę. Przetestuj to w miejscu, w którym wynik rośnie:
if score == 10:
$HUD/Message.text = "You win!"
get_tree().paused = trueNa koniec pozwól graczowi zagrać ponownie. Gdy gra jest wstrzymana, Spacja przeładowuje scenę. Main ma tryb Always, więc jego _process nadal działa:
func _process(delta):
if get_tree().paused and Input.is_action_just_pressed("jump"):
get_tree().paused = false
get_tree().reload_current_scene()Spacja służy też do trzepotania skrzydłami. Obiekt latający ma tryb Pausable, więc ignoruje naciśnięcie, gdy gra jest wstrzymana.
Wyzwanie
ŚredniWygraj po pokonaniu dziesięciu rur i zagraj ponownie.
- Gdy wynik osiągnie
10, wyświetlYou win!w$HUD/Messagei wstrzymaj grę. - Gdy gra jest wstrzymana, naciśnij spację (
jump), aby ją wznowić i ponownie załadować scenę.
Naciśnij „Graj” i pokonaj dziesięć rur: pojawi się komunikat You win! Spacja rozpoczyna grę od nowa. Następnie naciśnij „Sprawdź”.
Spróbuj swoich sił
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)
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Projekty
3Projekt: Latający Ptaszek
Grawitacja ptaszkaMachanie skrzydłamiPoćwicz samodzielnie: Edytor online Godot