Ожидание таймера
Часть раздела Правила игры путешествия по Godot на Coddy. Урок 5 из 29.
Чтобы приостановиться один раз внутри функции, узел Timer не нужен. get_tree().create_timer(2.0) создаёт одноразовый таймер в уже выполняющемся коде. await приостанавливает функцию, пока не поступит сигнал timeout:
func _ready():
print("Wait for it")
await get_tree().create_timer(2.0).timeout
print("Now!")Первая строка выводится сразу. Функция останавливается на await, пока игра продолжает выполняться. Через две секунды функция продолжает работу.
Оставь .timeout в конце. await ожидает сигнал, а timeout — это сигнал.
Задание
ЛегкоОткройте ворота через две секунды после начала игры.
- В
_ready()найдите строку, которая перемещает$Gate. - Перед ней выполните
awaitдля ожиданияtimeoutтаймера на2.0секунды, созданного с помощьюget_tree().create_timer().
Нажмите «Играть»: ворота подождут две секунды, а затем откроются. Затем нажмите «Проверить».
Попробуйте сами
extends Node2D
func _ready():
$Gate.position.y -= 140
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Правила игры
Потренируйтесь самостоятельно: Песочница Godot