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 = truePor ú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.
Desafío
IntermedioGana al superar diez tuberías y vuelve a jugar.
- Cuando la puntuación llegue a
10, muestraYou win!en$HUD/Messagey pausa el juego. - 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)
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Proyectos
3Proyecto: Flappy Flyer
Gravedad del voladorHaz aletear al voladorPractica por tu cuenta: Playground de Godot