Complete rewrite of Tweens

* Tweens were changed from Node to RefCounted. New API is inspired by DOTween.
* Tweens are created and managed by SceneTree, similar to SceneTreeTimer, which makes them ultra cheap to use a lot.
* Animating with Tweens is done by creating sequences of Tweeners. You create them from code and they autostart by default (fire-and-forget).
* There are 4 Tweeners that cover the former Tween functionality: PropertyTweener, IntervalTweener, CallbackTweener and MethodTweener.
* The methods were simplified a lot. Long argument lists are replaced with chained calls on Tweens and Tweeners.
* Tweeners by default execute in sequence, so it's easy to create complex chained animations.
* You can bind a Tween to a node. Tween will be removed automatically when the bound node is freed.
This commit is contained in:
Tomasz Chabora
2020-09-05 03:05:30 +02:00
committed by kobewi
parent 12e0f10c74
commit 900b2e0fdc
16 changed files with 1399 additions and 2005 deletions

View File

@@ -90,6 +90,13 @@
The timer will be automatically freed after its time elapses.
</description>
</method>
<method name="create_tween">
<return type="Tween">
</return>
<description>
Creates and returns a new [Tween].
</description>
</method>
<method name="get_first_node_in_group">
<return type="Node">
</return>
@@ -135,6 +142,13 @@
Returns a list of all nodes assigned to the given group.
</description>
</method>
<method name="get_processed_tweens">
<return type="Array">
</return>
<description>
Returns an array of currently exising [Tween]s in the [SceneTree] (both running and paused).
</description>
</method>
<method name="get_rpc_sender_id" qualifiers="const">
<return type="int">
</return>