Найти тему
Игровой движок Godot engine

№149. SceneTreeTween.

Актуально для версии 3.5 RC1 и выше.

На смену ноде Tween приходит класс SceneTreeTween.
Но убирать первый разработчкики не стали , и насколько я понимаю остается для поддержки старых проектов.

Собственно как и нода Tween, новый класс SceneTreeTween предназначен для анимации переходов одних значений в другие.

Как таковой ноды нет, поэтому создается всё это дело через код:

var tween = get_tree().create_tween()

Мы так же можем создать относительный твин:

Node.create_tween()

Далее просто вызываем свойство, указываем новое значение и за какое время оно должны примениться:

tween.tween_property($Sprite, "modulate", Color.red, 1)

Можем использовать «изинги» для анимации:

tween.tween_property($Sprite, "modulate", Color.red, 1).set_trans(Tween.TRANS_SINE)

Схема изингов для понимания :

Можем вызвать какой то метод или модифицировать своиства внутри функции.

-2

Например счетчик от 0 до 10 в леибле через вызов функции func set_label_text():

func _ready():
var tween = create_tween()
tween.tween_method(self, "set_label_text", 0, 10, 1).set_delay(1)
func set_label_text(value: int):
$Label.text = "Counting " + str(value)

В примере выше set_delay(1) — задержка в 1 секунду перед стартом анимации.

Помимо всего прочего можно зациклить вызовы при помощи метода set_loops().
И устанавливать паузы между твинами при помощи tween_interval().

var tween = create_tween().set_loops()
tween.tween_property($Sprite, "position:x", 200.0, 1).as_relative()
tween.tween_callback(self, "jump")
tween.tween_interval(2)
tween.tween_property($Sprite, "position:x", -200.0, 1).as_relative()
tween.tween_callback(self, "jump")
tween.tween_interval(2)

В примере выше нода будет ездить из стороны в сторону вызывая в конце одной из анимаций метод «jump» после чего ожидать две секунды и повторять цикл снова.

Надеюсь вам был полезен этот материал.
Подписывайтесь на канал,
вступайте в группу в ВК, и не забывайте что у нас есть дискорд сервер.
Удачи в изучении годо !

#godot #gdscript #уроки #игровой движок