Tubi a intervalli regolari
Fa parte della sezione Progetti del percorso Godot di Coddy. Lezione 24 di 36.
Ora passiamo ai tubi. Un tubo è una scena, pipe.tscn: una metà superiore e una metà inferiore con uno spazio in mezzo. In pipe.gd scorre verso sinistra a SPEED pixel al secondo. Superato il bordo sinistro, si elimina, così i tubi vecchi non si accumulano:
position.x -= SPEED * delta
if position.x < -60:
queue_free()La scena ha un Timer chiamato PipeTimer che scatta ogni 1.6 secondi. In main.gd, collega il suo segnale timeout e crea un tubo oltre il bordo destro:
func _on_pipe_timer_timeout():
var pipe = PIPE.instantiate()
pipe.position = Vector2(700, 180)
$Pipes.add_child(pipe)Godot disegna i nodi nell’ordine dell’albero. Pipes viene prima di Ground, quindi il terreno copre la parte inferiore di ogni tubo.
Sfida
MedioFai scorrere i tubi sullo schermo.
- In
pipe.gd, aggiungiconst SPEED = 160. Sposta il tubo verso sinistra a ogni frame di fisica e rimuovilo quandoposition.xè minore di-60. - In
main.gd, aggiungiconst PIPE = preload("res://pipe.tscn")e collega$PipeTimer.timeout. - A ogni timeout, crea un tubo in
(700, 180)nel nodoPipes.
Premi «Gioca»: i tubi entrano scorrendo da destra. Poi premi «Verifica».
Provalo tu
extends Node2D
func _ready():
pass
Tutte le lezioni di Progetti
3Progetto: Flappy Flyer
La gravità del FlyerFai sbattere le ali al FlyerEsercitati da solo: Playground Godot