Актуально для версии 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)
Схема изингов для понимания :
Можем вызвать какой то метод или модифицировать своиства внутри функции.
Например счетчик от 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 #уроки #игровой движок