Segna un punto superando un tubo
Fa parte della sezione Progetti del percorso Godot di Coddy. Lezione 27 di 36.
Ogni tubo che superi vale un punto. Il tubo ha un nodo figlio Area2D chiamato Gap, una striscia sottile dietro l'apertura. Il personaggio volante lo tocca solo dopo averlo attraversato, quindi è in quel momento che ottieni il punto.
In pipe.gd, collega il segnale del nodo figlio tramite $Gap ed emetti scored:
$Gap.body_entered.connect(_on_gap_body_entered)
func _on_gap_body_entered(body):
scored.emit()In main.gd, collega il segnale scored di ogni nuovo tubo. Aggiungi uno a score e mostralo in $HUD/Score. str(score) trasforma il numero in testo. Mostra 0 all'inizio.
Sfida
MedioOttieni un punto per ogni tubo che superi.
- In
pipe.gd, aggiungisignal scored, connetti$Gap.body_entereded emettiscoredquando un corpo entra nello spazio. - In
main.gd, aggiungivar score = 0e mostra0in$HUD/Scoreall’inizio. - Connetti
scoreddi ogni tubo a una funzione che aggiunge uno e mostra il punteggio.
Premi «Gioca» e vola attraverso uno spazio: il punteggio mostra 1. Poi premi «Verifica».
Provalo tu
extends Area2D
signal hit
const SPEED = 160
func _ready():
body_entered.connect(_on_body_entered)
func _physics_process(delta):
position.x -= SPEED * delta
if position.x < -60:
queue_free()
func _on_body_entered(body):
hit.emit()
Tutte le lezioni di Progetti
3Progetto: Flappy Flyer
La gravità del FlyerFai sbattere le ali al FlyerEsercitati da solo: Playground Godot