Diez tuberías para ganar
Parte de la sección Proyectos del Journey de Godot de Coddy. Lección 25 de 33.
El jugador puede perder, pero todavía no ganar. Al llegar a una puntuación de 10, muestra You Win! y pausa el juego. Pruébalo cuando aumente 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 es 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 de aleteo. El volador es Pausable, así que ignora la pulsación mientras el juego está pausado.
Desafío
Intermedio- Cuando la puntuación llegue a 10, muestra
You Win!y pausa el juego. - Mientras esté en pausa, la tecla Espacio (
jump) quita la pausa y vuelve a cargar la escena.
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