Menu
CoddyTech

Segnali con valori

Fa parte della sezione Segnali e collisioni del percorso Godot di Coddy. Lezione 8 di 27.

Un segnale può trasportare valori, proprio come body_entered trasporta il corpo. Elencali tra parentesi quadre quando lo dichiari:

signal collected(points)

Passa i valori a emit(), nello stesso ordine:

collected.emit(points)

Ogni funzione collegata a collected riceve il valore. Qui lo script su Main aggiunge i punti al punteggio e lo stampa:

func _on_gem_collected(points):
	score += points
	print("Score: ", score)

Entrambe le gemme eseguono lo stesso script. Il valore di points della gemma piccola è 10 e quello della gemma grande è 25, impostati su ciascun nodo nella scena. Quindi invia points, non un numero che digiti tu.

challenge icon

Sfida

Facile

Fai in modo che ogni gemma comunichi a main.gd quanti punti vale.

  1. Dichiara signal collected(points) all'inizio di gem.gd.
  2. Alla fine di _on_body_entered, invia il segnale con i points della gemma.

Premi «Gioca» e passa sopra entrambe le gemme: la console mostra Score: 10, poi Score: 35. Poi premi «Verifica».

Provalo tu

extends Area2D

@export var points = 10

func _ready():
	body_entered.connect(_on_body_entered)

func _on_body_entered(body):
	if not visible:
		return
	visible = false

Tutte le lezioni di Segnali e collisioni

Esercitati da solo: Playground Godot