Заморозка при попадании
Часть раздела Ощущения от игры путешествия по 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 реальной секунды с помощью таймера, который игнорирует масштаб времени, как показано выше.
- Снова установи
Engine.time_scaleв значение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