Dieci tubi per vincere
Fa parte della sezione Progetti del percorso Godot di Coddy. Lezione 28 di 36.
Il giocatore può perdere, ma non ancora vincere. Quando il punteggio raggiunge 10, mostra You win! e metti in pausa. Provalo nel punto in cui il punteggio aumenta:
if score == 10:
$HUD/Message.text = "You win!"
get_tree().paused = trueInfine, permetti al giocatore di giocare di nuovo. Quando il gioco è in pausa, la barra spaziatrice ricarica la scena. Main è Always, quindi _process continua a essere eseguito:
func _process(delta):
if get_tree().paused and Input.is_action_just_pressed("jump"):
get_tree().paused = false
get_tree().reload_current_scene()La barra spaziatrice è anche il tasto per sbattere le ali. Il personaggio volante è Pausable, quindi ignora la pressione del tasto mentre il gioco è in pausa.
Sfida
MedioVinci superando dieci tubi e gioca di nuovo.
- Quando il punteggio raggiunge
10, mostraYou win!in$HUD/Messagee metti in pausa il gioco. - Mentre il gioco è in pausa, premendo la barra spaziatrice (
jump) si riprende il gioco e si ricarica la scena.
Premi «Gioca» e supera dieci tubi: appare You win! Premi la barra spaziatrice per ricominciare. Poi premi «Verifica».
Provalo tu
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)
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Progetti
3Progetto: Flappy Flyer
La gravità del FlyerFai sbattere le ali al FlyerEsercitati da solo: Playground Godot