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.
Défi
MoyenMarque un point pour chaque tuyau que vous franchissez.
- Dans
pipe.gd, ajoutezsignal scored, connectez$Gap.body_enteredet émettezscoredlorsqu’un corps entre dans l’ouverture. - Dans
main.gd, ajoutezvar score = 0et affichez0dans$HUD/Scoreau début. - Connectez le
scoredde 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
3Projet : Flappy Flyer
La gravité du FlyerFaire battre les ailes du FlyerEntraînez-vous par vous-même : Playground Godot