Menu
CoddyTech

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.

challenge icon

Desafío

Intermedio

Envía tuberías a través de la pantalla.

  1. En pipe.gd, añade const SPEED = 160. Mueve la tubería hacia la izquierda en cada fotograma de física y elimínala cuando position.x sea menor que -60.
  2. En main.gd, añade const PIPE = preload("res://pipe.tscn") y conecta $PipeTimer.timeout.
  3. En cada tiempo de espera, crea una tubería en (700, 180) dentro del nodo Pipes.

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

Practica por tu cuenta: Playground de Godot