Menu
CoddyTech
flag Ru iconРусскийdown icon

Трубы по таймеру

Часть раздела Проекты путешествия по Godot на Coddy. Урок 21 из 33.

Далее идут трубы. Труба — это сцена pipe.tscn: верхняя и нижняя части с промежутком между ними. В pipe.gd она перемещается влево со скоростью SPEED пикселей в секунду. За левым краем она удаляет себя, чтобы старые трубы не скапливались:

position.x -= SPEED * delta
if position.x < -60:
	queue_free()

В сцене есть Timer с именем PipeTimer, который срабатывает каждые 1.6 секунды. В main.gd подключи его сигнал timeout и создай трубу за правым краем:

func _on_pipe_timer_timeout():
	var pipe = PIPE.instantiate()
	pipe.position = Vector2(700, 180)
	$Pipes.add_child(pipe)

Godot рисует узлы в порядке дерева. Pipes находится перед Ground, поэтому земля закрывает нижнюю часть каждой трубы.

challenge icon

Задание

Средне
  1. В pipe.gd добавь const SPEED = 160. Сдвигай трубу влево каждый физический кадр и удаляй её, когда position.x станет меньше -60.
  2. В main.gd добавь const PIPE = preload("res://pipe.tscn") и подключи $PipeTimer.timeout. При каждом тайм-ауте создавай трубу в позиции (700, 180) в узле Pipes.

Попробуйте сами

extends Node2D

func _ready():
	pass
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Проекты

Потренируйтесь самостоятельно: Песочница Godot