Menu
CoddyTech

Diez tuberías para ganar

Parte de la sección Proyectos del Journey de Godot de Coddy. Lección 28 de 36.

El jugador puede perder, pero todavía no ganar. Con una puntuación de 10, muestra You win! y pausa el juego. Pruébalo donde aumenta la puntuación:

if score == 10:
	$HUD/Message.text = "You win!"
	get_tree().paused = true

Por último, permite que el jugador vuelva a jugar. Mientras el juego está pausado, la barra espaciadora vuelve a cargar la escena. Main está en modo Always, así que _process sigue ejecutándose:

func _process(delta):
	if get_tree().paused and Input.is_action_just_pressed("jump"):
		get_tree().paused = false
		get_tree().reload_current_scene()

La barra espaciadora también es la tecla para aletear. El personaje volador está en modo Pausable, así que ignora la pulsación mientras el juego está pausado.

challenge icon

Desafío

Intermedio

Gana al superar diez tuberías y vuelve a jugar.

  1. Cuando la puntuación llegue a 10, muestra You win! en $HUD/Message y pausa el juego.
  2. Mientras el juego esté en pausa, la barra espaciadora (jump) reanuda el juego y vuelve a cargar la escena.

Pulsa «Jugar» y supera diez tuberías: aparece You win! La barra espaciadora permite volver a empezar. Después, pulsa «Comprobar».

Pruébalo tú mismo

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)
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Proyectos

Practica por tu cuenta: Playground de Godot