Menu
CoddyTech

Сжатие и растяжение

Часть раздела Ощущения от игры путешествия по Godot на Coddy. Урок 18 из 23.

В мультфильмах персонаж сжимается при ударе, а затем пружинит обратно. Благодаря этому удар выглядит сильным.

Эффект сжатия — это анимация с двумя этапами для scale. На первом робот становится шире и ниже. На втором он пружинит обратно до Vector2(1, 1) с помощью Tween.TRANS_ELASTIC: размер превышает обычный, а затем колеблется, прежде чем стабилизироваться.

var wobble = create_tween()
wobble.tween_property(self, "scale", Vector2(1.4, 0.6), 0.08)
wobble.tween_property(self, "scale", Vector2(1, 1), 0.5).set_trans(Tween.TRANS_ELASTIC).set_ease(Tween.EASE_OUT)

Это вторая анимация, параллельная анимации вспышки. Две анимации могут выполняться одновременно, если они изменяют разные свойства.

challenge icon

Задание

Легко

Сплющивай робота при попадании.

  1. После вспышки в hit() создай второй твен под названием wobble.
  2. Анимируй scale до Vector2(1.4, 0.6) за 0.08 секунды.
  3. Затем анимируй его обратно до Vector2(1, 1) за 0.5 секунды с помощью Tween.TRANS_ELASTIC и Tween.EASE_OUT.

Нажми «Играть» и нажми 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)

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

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