Трубы по таймеру
Часть раздела Проекты путешествия по 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, поэтому земля закрывает нижнюю часть каждой трубы.
Задание
Средне- В
pipe.gdдобавьconst SPEED = 160. Сдвигай трубу влево каждый физический кадр и удаляй её, когдаposition.xстанет меньше -60. - В
main.gdдобавьconst PIPE = preload("res://pipe.tscn")и подключи$PipeTimer.timeout. При каждом тайм-ауте создавай трубу в позиции(700, 180)в узлеPipes.
Попробуйте сами
extends Node2D
func _ready():
pass
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Проекты
3Проект: Летающий птенец
Гравитация для птенцаВзмах крыльямиПотренируйтесь самостоятельно: Песочница Godot