Menu
CoddyTech

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.

challenge icon

Sfida

Medio

Ottieni un punto per ogni tubo che superi.

  1. In pipe.gd, aggiungi signal scored, connetti $Gap.body_entered ed emetti scored quando un corpo entra nello spazio.
  2. In main.gd, aggiungi var score = 0 e mostra 0 in $HUD/Score all’inizio.
  3. Connetti scored di 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

Esercitati da solo: Playground Godot