Заморозка при попадании
Часть раздела Ощущения от игры путешествия по Godot на Coddy. Урок 17 из 23.
Заморозка при попадании останавливает игру на долю секунды, когда наносится удар. Благодаря этому удар ощущается сильнее.
Engine.time_scale — это скорость игровых часов. При значении 1 игра работает как обычно. При значении 0.05 движение, твины и таймеры работают в двадцать раз медленнее.
Engine.time_scale = 0.05
await get_tree().create_timer(0.1, true, false, true).timeout
Engine.time_scale = 1.0Обычный таймер работает по замедленным часам, поэтому 0.1 секунды продлились бы две реальные секунды. Последнее true в create_timer заставляет таймер игнорировать time_scale и отсчитывать реальные секунды. Два значения перед ним — стандартные значения по умолчанию.
Всегда возвращай time_scale к значению 1. Это влияет на всю игру и сохраняется, пока твой код не изменит это значение.
Задание
СреднеПосле вспышки в hit() заморозь игру. Установи Engine.time_scale на 0.05, подожди 0.1 реальной секунды с помощью таймера, который игнорирует масштаб времени, а затем установи значение обратно на 1.0. Нажми E и смотри, как дрон остановится.
Попробуйте сами
extends Node2D
func hit():
modulate = Color(4, 4, 4)
var tween = create_tween()
tween.tween_property(self, "modulate", Color(1, 1, 1), 0.3)
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Ощущения от игры
1Твины
Ваш первый твинАнимируйте любое свойствоЗатуханиеПлавное замедлениеОдин за другимОдновременноМонетка, которая подпрыгивает4Вспышки и обратная связь
Вспышка при попаданииЗаморозка при попаданииСжатие и растяжениеВсплывающие числаПотренируйтесь самостоятельно: Песочница Godot