Menu
CoddyTech

Signaux avec des valeurs

Fait partie de la section Signaux et collisions du Journey Godot de Coddy. Leçon 8 sur 27.

Un signal peut transporter des valeurs, comme body_entered transporte le corps. Liste-les entre crochets lorsque tu le déclares :

signal collected(points)

Transmets les valeurs à emit(), dans le même ordre :

collected.emit(points)

Chaque fonction connectée à collected reçoit la valeur. Ici, le script sur Main ajoute les points au score et l’affiche :

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

Les deux gemmes exécutent le même script. La valeur de points de la petite gemme est 10 et celle de la grande est 25 ; ces valeurs sont définies sur chaque nœud dans l’Inspecteur. Envoie donc points, et non un nombre que tu saisis directement.

challenge icon

Défi

Facile

Fais en sorte que chaque gemme indique à main.gd combien de points elle vaut :

  1. Déclare signal collected(points) en haut de gem.gd.
  2. À la fin de _on_body_entered, envoie-le avec les points de la gemme.

Passe sur les deux gemmes. La console devrait afficher Score: 10, puis Score: 35.

Essayez vous-même

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
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Signaux et collisions

Entraînez-vous par vous-même : Playground Godot