Menu
CoddyTech

Тряска экрана

Часть раздела Ощущения от игры путешествия по 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).

challenge icon

Задание

Средне

Встряхивай экран, когда робот топает.

  1. В _process приближай shake к 0 на 30.0 * delta с помощью move_toward.
  2. Задай для 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
quiz iconПроверьте себя

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

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

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