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

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

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

Задание

Средне

В _process:

  1. приближайте shake к 0 на 30.0 * delta с помощью move_toward,
  2. задайте offset случайный Vector2 между -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