Трубы по таймеру
Часть раздела Проекты путешествия по Godot на Coddy. Урок 24 из 36.
Теперь идут трубы. Труба — это сцена 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