Se cogner aux tuyaux
Fait partie de la section Projets du Journey Godot de Coddy. Leçon 23 sur 33.
Toucher un tuyau ou le sol doit mettre fin à la partie. Dans les deux cas, une fonction de main.gd est appelée :
func _on_crash():
$HUD/Message.text = "Game Over"
get_tree().paused = trueUn tuyau. Le tuyau est un Area2D composé de deux formes, les moitiés supérieure et inférieure. L'espace entre les deux n'a pas de forme. Dans pipe.gd, connecte body_entered et émets un signal hit. main.gd connecte le signal hit de chaque nouveau tuyau avant de l'ajouter.
Le sol. Son sommet se trouve à y = 318. Le bord du personnage volant est à 12 pixels de son milieu, il touche donc le sol lorsque position.y dépasse 306. flyer.gd émet alors le signal crashed.
Le personnage volant, les tuyaux et le minuteur sont en mode Pausable, la pause les immobilise donc tous.
Défi
Difficile- Dans
pipe.gd, ajoutesignal hit. Connectebody_entereddans_readyet émetshitlorsqu’un corps entre. - Dans
flyer.gd, ajoutesignal crashedet émets-le lorsqueposition.ydépasse 306. - Dans
main.gd, connecte lehitde chaque tuyau et lecrashedde l’avatar à_on_crash. Cela afficheGame Overet met le jeu en pause.
Essayez vous-même
extends Node2D
const PIPE = preload("res://pipe.tscn")
func _ready():
$PipeTimer.timeout.connect(_on_pipe_timer_timeout)
func _on_pipe_timer_timeout():
var pipe = PIPE.instantiate()
pipe.position = Vector2(700, randf_range(100, 250))
$Pipes.add_child(pipe)
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
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