Dix tuyaux pour gagner
Fait partie de la section Projets du Journey Godot de Coddy. Leçon 28 sur 36.
Le joueur peut perdre, mais pas encore gagner. À un score de 10, affiche You win! et mets le jeu en pause. Teste cela là où le score augmente :
if score == 10:
$HUD/Message.text = "You win!"
get_tree().paused = trueEnfin, permet au joueur de rejouer. Pendant que le jeu est en pause, la barre d’espace recharge la scène. Main est toujours actif, donc son _process continue de s’exécuter :
func _process(delta):
if get_tree().paused and Input.is_action_just_pressed("jump"):
get_tree().paused = false
get_tree().reload_current_scene()La barre d’espace est aussi la touche de battement d’ailes. Le personnage volant est en mode Pausable, donc il ignore la pression de la touche pendant que le jeu est en pause.
Défi
MoyenGagne après dix tuyaux et rejoue.
- Lorsque le score atteint
10, afficheYou win!dans$HUD/Messageet mets le jeu en pause. - Lorsque le jeu est en pause, la barre d’espace (
jump) reprend le jeu et recharge la scène.
Appuie sur « Jouer » et passe dix tuyaux : You win! s’affiche. Appuie sur la barre d’espace pour recommencer. Puis appuie sur « Vérifier ».
Essayez vous-même
extends Node2D
const PIPE = preload("res://pipe.tscn")
var score = 0
func _ready():
$PipeTimer.timeout.connect(_on_pipe_timer_timeout)
$Flyer.crashed.connect(_on_crash)
$HUD/Score.text = "0"
func _on_pipe_timer_timeout():
var pipe = PIPE.instantiate()
pipe.position = Vector2(700, randf_range(100, 250))
pipe.hit.connect(_on_crash)
pipe.scored.connect(_on_scored)
$Pipes.add_child(pipe)
func _on_crash():
$HUD/Message.text = "Game Over"
get_tree().paused = true
func _on_scored():
score += 1
$HUD/Score.text = str(score)
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