Choca contra las tuberías
Parte de la sección Proyectos del Journey de Godot de Coddy. Lección 26 de 36.
Chocar contra una tubería o el suelo debería terminar la partida. Ambos casos llevan a una función de main.gd:
func _on_crash():
$HUD/Message.text = "Game Over"
get_tree().paused = trueUna tubería. La tubería es un Area2D con dos formas, las mitades superior e inferior. El hueco no tiene ninguna forma. En pipe.gd, conecta body_entered y emite una señal hit. main.gd conecta la señal hit de cada tubería nueva antes de añadirla.
El suelo. Su parte superior está en y = 318. El borde del volador está a 12 píxeles de su centro, así que toca el suelo cuando position.y supera 306. Después, flyer.gd emite crashed.
El volador, las tuberías y el temporizador se pueden pausar, así que la pausa los detiene a todos.
Desafío
DifícilTermina la partida cuando haya un choque.
- En
pipe.gd, añadesignal hit, conectabody_entereden_readyy emitehitcuando entre un cuerpo. - En
flyer.gd, añadesignal crashedy emítela cuandoposition.ysea mayor que306. - En
main.gd, conecta elhitde cada tubería y elcrasheddel volador a_on_crash, que muestraGame Overy pausa la partida.
Pulsa «Jugar» y déjate caer: aparece Game Over. Después, pulsa «Comprobar».
Pruébalo tú mismo
extends Node2D
const PIPE = preload("res://pipe.tscn")
func _ready():
$PipeTimer.timeout.connect(_on_pipe_timer_timeout)
func _on_pipe_timer_timeout():
var pipe = PIPE.instantiate()
pipe.position = Vector2(700, randf_range(100, 250))
$Pipes.add_child(pipe)
Todas las lecciones de Proyectos
3Proyecto: Flappy Flyer
Gravedad del voladorHaz aletear al voladorPractica por tu cuenta: Playground de Godot