Menu
CoddyTech
flag Pt iconPortuguêsdown icon

Reiniciar com uma tecla

Parte da seção Regras do jogo do Journey de Godot da Coddy. Lição 15 de 29.

Esta linha descarta a cena e a carrega novamente do arquivo:

get_tree().reload_current_scene()

O novo jogo começa com três vidas, o jogador no quadrado verde e Game Over oculto.

Main também está pausado, então seu _process nunca detecta a tecla. Defina o próprio process_mode de Main como Node.PROCESS_MODE_ALWAYS. Os filhos herdam essa configuração, exceto o jogador. A cena define o jogador como Pausable, então ele ainda para.

Recarregar não despausa o jogo. Defina get_tree().paused = false antes de recarregar, ou o novo jogo começará pausado.

challenge icon

Desafio

Fácil

Permita que o jogador pressione E para jogar novamente após o fim de jogo:

  1. Em _ready(), defina o process_mode deste nó como Node.PROCESS_MODE_ALWAYS.
  2. Em _process(), quando lives for 0 e action tiver acabado de ser pressionado, retome o jogo e recarregue a cena.

Experimente você mesmo

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
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Regras do jogo

Pratique por conta própria: Playground de Godot