Godot: Tween.is_active() always true after tween.stop() and then tween.start()

Created on 22 Jun 2020  路  6Comments  路  Source: godotengine/godot

Godot version:3.2

OS/device including version: Several OS (Win10 / MacOS)

Issue description:
Tween never gets finished when tween.start() is called after tween.stop() without calling tween.resume()

Steps to reproduce:
Start() a tween.
is_active() become true (normal)
Stop() the tween before it finished.
is_active() become false (normal)
Start() the tween again.
is_active() become true (normal)

but in this case when the tween is over, it never switch is_active() to false.
Completed events are not fired.

Minimal reproduction project:
tween_bug.zip

bug confirmed junior job core

Most helpful comment

I would like to work on this issue if there nobody

All 6 comments

Confirmed in 3.2.2 RC 3 (1468c0b4d4592406502c7e4eaa2121f1d0a7e5f6).

Just leaving this here as a note to myself, or to anyone else that may try and fix this

In the engine source, Tween::set_active is called in Tween::_tween_process at the end of the function when all the tween data has been successfully processed. It's on these lines (3.2 commit a662b853)

https://github.com/godotengine/godot/blob/a662b853dd5de7d47a8c5ebee3ae35cf66490d3f/scene/animation/tween.cpp#L801-L804

Notice that the signal tween_all_completed is emitted when the Tween is supposedly finished processing data. This signal does not fire when the bug is triggered, meaning that the culprit is somewhere in Tween::_tween_process

I would like to work on this issue if there nobody

Thanks a lot for your efforts to fix this issue but the commited fix in 3.2.3 RC1 introduce another bug : https://github.com/godotengine/godot/issues/40679

I think the issue should be re-opened with the above revert of 8ef40b9 commit.

No because the issue is still fixed in the master branch.

Was this page helpful?
0 / 5 - 0 ratings