Redémarrer avec une touche
Fait partie de la section Règles du jeu du Journey Godot de Coddy. Leçon 15 sur 29.
Cette ligne abandonne la scène et la recharge depuis son fichier :
get_tree().reload_current_scene()La nouvelle partie commence avec trois vies, le joueur sur le carré vert et « Game Over » masqué.
Main est également en pause, donc son _process ne détecte jamais la touche. Définis le process_mode de Main sur Node.PROCESS_MODE_ALWAYS. Ses enfants héritent de ce mode, à l’exception du joueur. La scène définit le mode du joueur sur Pausable, donc il s’arrête toujours.
Le rechargement ne relance pas le jeu. Définis get_tree().paused = false avant de recharger, sinon la nouvelle partie démarre en pause.
Défi
FacilePermets au joueur d’appuyer sur E pour rejouer après l’écran de fin :
- Dans
_ready(), définis leprocess_modede ce nœud surNode.PROCESS_MODE_ALWAYS. - Dans
_process(), lorsquelivesvaut 0 et queactionvient d’être activée, remets le jeu en pause et recharge la scène.
Essayez vous-même
extends Node2D
var lives = 3
func _ready():
$HUD/Lives.text = "Lives: %d" % lives
$Player.hurt.connect(_on_player_hurt)
$Blink.timeout.connect(_on_blink_timeout)
$Blink.process_mode = Node.PROCESS_MODE_ALWAYS
func _process(delta):
pass
func _on_player_hurt():
lives -= 1
$HUD/Lives.text = "Lives: %d" % lives
if lives == 0:
$HUD/GameOver.visible = true
$HUD/Hint.visible = true
get_tree().paused = true
func _on_blink_timeout():
if lives == 0:
$HUD/GameOver.visible = not $HUD/GameOver.visible
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Règles du jeu
3Vies et défaites
ViesFin de partieMettre le jeu en pauseMode de traitementRedémarrer avec une toucheEntraînez-vous par vous-même : Playground Godot