SpielBackupAlt/addons/dialogic/Nodes/Anima/animations/attention_seeker/jello.gd

33 lines
1.1 KiB
GDScript3
Raw Permalink Normal View History

2024-12-26 14:54:06 +00:00
func generate_animation(anima_tween: Tween, data: Dictionary) -> void:
var start_x = data.node.get_global_transform().y.x
var start_y = data.node.get_global_transform().x.y
var skew_x := []
var skew_y := []
var values = [
{ percentage = 0, add = 0 },
{ percentage = 11.1, add = 0 },
{ percentage = 22.2, add = - 0.3 },
{ percentage = 33.3, add = + 0.265 },
{ percentage = 44.4, add = - 0.1325 },
{ percentage = 55.5, add = + 0.06625 },
{ percentage = 66.6, add = - 0.033125 },
{ percentage = 77.7, add = + 0.0165625 },
{ percentage = 88.8, add = - 0.00828125},
{ percentage = 100, add = 0 },
]
for value in values:
skew_x.push_back({ percentage = value.percentage, to = start_x + value.add })
skew_y.push_back({ percentage = value.percentage, to = start_y + value.add })
DialogicAnimaPropertiesHelper.set_2D_pivot(data.node, DialogicAnimaPropertiesHelper.PIVOT.CENTER)
# Skew works only with Node2D
if not data.node is Node2D:
return
anima_tween.add_frames(data, "skew:x", skew_x)
anima_tween.add_frames(data, "skew:y", skew_y)