Tuberías con temporizador
Parte de la sección Proyectos del Journey de Godot de Coddy. Lección 24 de 36.
Ahora vienen las tuberías. Una tubería es una escena, pipe.tscn: una mitad superior y otra inferior con un hueco entre ellas. En pipe.gd, se desliza hacia la izquierda a SPEED píxeles por segundo. Cuando pasa el borde izquierdo, se elimina, para que las tuberías antiguas no se acumulen:
position.x -= SPEED * delta
if position.x < -60:
queue_free()La escena tiene un Timer llamado PipeTimer que se activa cada 1.6 segundos. En main.gd, conecta su señal timeout y crea una tubería más allá del borde derecho:
func _on_pipe_timer_timeout():
var pipe = PIPE.instantiate()
pipe.position = Vector2(700, 180)
$Pipes.add_child(pipe)Godot dibuja los nodos en el orden del árbol. Pipes aparece antes que Ground, así que el suelo cubre la parte inferior de cada tubería.
Desafío
IntermedioEnvía tuberías a través de la pantalla.
- En
pipe.gd, añadeconst SPEED = 160. Mueve la tubería hacia la izquierda en cada fotograma de física y elimínala cuandoposition.xsea menor que-60. - En
main.gd, añadeconst PIPE = preload("res://pipe.tscn")y conecta$PipeTimer.timeout. - En cada tiempo de espera, crea una tubería en
(700, 180)dentro del nodoPipes.
Pulsa «Jugar»: las tuberías entran deslizándose desde la derecha. Después, pulsa «Comprobar».
Pruébalo tú mismo
extends Node2D
func _ready():
pass
Todas las lecciones de Proyectos
3Proyecto: Flappy Flyer
Gravedad del voladorHaz aletear al voladorPractica por tu cuenta: Playground de Godot