Menu
CoddyTech
flag Ru iconРусскийdown icon

Заморозка при попадании

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

challenge icon

Задание

Средне

После вспышки в 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)
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Ощущения от игры

Потренируйтесь самостоятельно: Песочница Godot