Scontrarsi con i tubi
Fa parte della sezione Progetti del percorso Godot di Coddy. Lezione 23 di 33.
Colpire un tubo o il terreno dovrebbe terminare la partita. Entrambi portano a una funzione in main.gd:
func _on_crash():
$HUD/Message.text = "Game Over"
get_tree().paused = trueUn tubo. Il tubo è un Area2D con due forme, le metà superiore e inferiore. Lo spazio vuoto non ha forma. In pipe.gd, collega body_entered ed emetti un segnale hit. main.gd collega il segnale hit di ogni nuovo tubo prima di aggiungerlo.
Il terreno. La sua parte superiore si trova a y = 318. Il bordo del personaggio volante dista 12 pixel dal suo centro, quindi tocca il terreno quando position.y supera 306. A quel punto, flyer.gd emette crashed.
Il personaggio volante, i tubi e il timer sono Pausable, quindi la pausa li blocca tutti.
Sfida
Difficile- In
pipe.gd, aggiungisignal hit. Collegabody_enteredin_readyed emettihitquando un corpo entra. - In
flyer.gd, aggiungisignal crasheded emettilo quandoposition.yè maggiore di 306. - In
main.gd, collegahitdi ogni tubo ecrasheddel flyer a_on_crash. MostraGame Overe mette in pausa il gioco.
Provalo tu
extends Node2D
const PIPE = preload("res://pipe.tscn")
func _ready():
$PipeTimer.timeout.connect(_on_pipe_timer_timeout)
func _on_pipe_timer_timeout():
var pipe = PIPE.instantiate()
pipe.position = Vector2(700, randf_range(100, 250))
$Pipes.add_child(pipe)
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