Тряска экрана
Часть раздела Ощущения от игры путешествия по Godot на Coddy. Урок 11 из 23.
Тряска экрана подчёркивает важный момент, например топот или взрыв. На этом уровне клавиша E вызывает start_shake() камеры, которая задаёт shake значение 12. Пока ничего не движется.
У Camera2D есть offset — это Vector2, который смещает изображение, не двигая узел камеры. Новый случайный сдвиг в каждом кадре заставляет изображение трястись.
offset = Vector2(randf_range(-shake, shake), randf_range(-shake, shake))Тряска должна прекратиться. Каждый кадр уменьшай shake в сторону 0 с помощью move_toward, чтобы скачки становились меньше.
shake = move_toward(shake, 0.0, 30.0 * delta)Когда shake достигает 0, оба случайных числа равны 0, а offset снова становится равным Vector2(0, 0).
Задание
СреднеВстряхивай экран, когда робот топает.
- В
_processприближайshakeк 0 на30.0 * deltaс помощьюmove_toward. - Задай для
offsetзначениеVector2со случайными координатами x и y в диапазоне от-shakeдоshake.
Нажми «Играть» и нажми E, чтобы робот топнул: вид встряхнётся, а затем стабилизируется. Затем нажми «Проверить».
Попробуйте сами
extends Camera2D
var shake = 0.0
func _ready():
limit_left = 0
limit_top = 0
limit_right = 1600
limit_bottom = 360
func start_shake():
shake = 12.0
func _process(delta):
pass
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Ощущения от игры
Потренируйтесь самостоятельно: Песочница Godot