Сегодня мы заново соберём проект из туториала по Tween в Godot: разберём код, настройки и анимации.годот туториал 2д.Tween 3
Для этого создадим проект Tween Demo Experiment. Добавим на сцену корневой узел Node2D, внутрь которого поместим Path2D и Sprite2D
Сохраним сцену как tween.tscn. Теперь добавим к корневому узлу Node2D скрипт
extends Node2D
var tween:Tween
@onready var icon:Sprite2D = $Sprite2D
@onready var icon_start_position = icon.position
func _ready() -> void:
reset()
tween=create_tween().set_speed_scale(2)
var tweener:=tween.tween_property(icon,^"position",Vector2(300,300),2)
tweener.set_ease(Tween.EASE_IN)
tweener.set_trans(Tween.TRANS_LINEAR)
func reset()->void:
icon.position = icon_start_position
Спрайт icon перемещается из начальной точки в конечную с помощью анимации Tween
В функции _ready создаётся объект Tween и задаётся тип перемещения. Теперь добавим опорные точки для Path2D и заставим Tween двигать спрайт по кривой
extends Node2D
var tween:Tween
@onready var icon:Sprite2D = $Sprite2D
@onready var icon_start_position = icon.position
@onready var path:Path2D = $Path2D
func _ready() -> void:
reset()
tween=create_tween().set_speed_scale(2)
var tweener:=tween.tween_property(icon,^"position",Vector2(300,300),2)
tweener.set_ease(Tween.EASE_IN)
tweener.set_trans(Tween.TRANS_LINEAR)
var tweener2 := tween.tween_method(
func(v: float) -> void:
icon.position = path.position + path.curve.sample_baked(v),
0.0,
path.curve.get_baked_length(), 60.0
).set_delay(0.5)
tweener2.set_ease(Tween.EASE_OUT)
tweener2.set_trans(Tween.TRANS_BOUNCE)
func reset()->void:
icon.position = icon_start_position
Создаём второй объект Tween (tweener2) и переменную path, ссылающуюся на узел Path2D. Теперь после перемещения в заданную точку иконка начинает движение по нарисованной кривой
годот туториал 2д.Tween 3.Конец
На этом туториал по Tween завершён. В следующий раз мы приступим к разработке игры «Сокобан» — это будет мой тестовый урок. Спасибо за внимание!





