From 9607de4c8e0a59ba71afe7dd75e47b237fcae11c Mon Sep 17 00:00:00 2001 From: kobewi Date: Sun, 11 Sep 2022 17:39:35 +0200 Subject: [PATCH] Add more clarifications about Tween processing (cherry picked from commit 038cb677cbde3adcc692296b3113398cd351f9fe) --- doc/classes/SceneTreeTween.xml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/doc/classes/SceneTreeTween.xml b/doc/classes/SceneTreeTween.xml index 453f0165f..9173410ba 100644 --- a/doc/classes/SceneTreeTween.xml +++ b/doc/classes/SceneTreeTween.xml @@ -36,9 +36,18 @@ tween.tween_property(sprite, "position", Vector2(0, 0), 1) [/codeblock] In the example above, all children of a node are moved one after another to position (0, 0). + You should avoid using more than one [SceneTreeTween] per object's property. If two or more tweens animate one property at the same time, the last one created will take priority and assign the final value. If you want to interrupt and restart an animation, consider assigning the [SceneTreeTween] to a variable: + [codeblock] + var tween + func animate(): + if tween: + tween.kill() # Abort the previous animation. + tween = create_tween() + [/codeblock] Some [Tweener]s use transitions and eases. The first accepts a [enum Tween.TransitionType] constant, and refers to the way the timing of the animation is handled (see [url=https://easings.net/]easings.net[/url] for some examples). The second accepts an [enum Tween.EaseType] constant, and controls where the [code]trans_type[/code] is applied to the interpolation (in the beginning, the end, or both). If you don't know which transition and easing to pick, you can try different [enum Tween.TransitionType] constants with [constant Tween.EASE_IN_OUT], and use the one that looks best. [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/tween_cheatsheet.png]Tween easing and transition types cheatsheet[/url] [b]Note:[/b] All [SceneTreeTween]s will automatically start by default. To prevent a [SceneTreeTween] from autostarting, you can call [method stop] immediately after it is created. + [b]Note:[/b] [SceneTreeTween]s are processing after all of nodes in the current frame, i.e. after [method Node._process] or [method Node._physics_process] (depending on [enum Tween.TweenProcessMode]).