Menu
CoddyTech

Marquer un point en passant un tuyau

Fait partie de la section Projets du Journey Godot de Coddy. Leçon 27 sur 36.

Chaque tuyau que tu franchis vaut un point. Le tuyau a un enfant Area2D appelé Gap, une fine bande derrière l'ouverture. Le flyer ne le touche qu'une fois passé, c'est donc à ce moment-là que tu marques un point.

Dans pipe.gd, connecte le signal de l'enfant via $Gap et émets scored :

$Gap.body_entered.connect(_on_gap_body_entered)

func _on_gap_body_entered(body):
	scored.emit()

Dans main.gd, connecte le signal scored de chaque nouveau tuyau. Ajoute un à score et affiche-le dans $HUD/Score. str(score) convertit le nombre en texte. Affiche 0 au début.

challenge icon

Défi

Moyen

Marque un point pour chaque tuyau que vous franchissez.

  1. Dans pipe.gd, ajoutez signal scored, connectez $Gap.body_entered et émettez scored lorsqu’un corps entre dans l’ouverture.
  2. Dans main.gd, ajoutez var score = 0 et affichez 0 dans $HUD/Score au début.
  3. Connectez le scored de chaque tuyau à une fonction qui ajoute un point et affiche le score.

Appuyez sur « Jouer » et traversez une ouverture en volant : le score affiche 1. Puis appuyez sur « Vérifier ».

Essayez vous-même

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()

Toutes les leçons de Projets

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