mirror of
https://github.com/godotengine/godot.git
synced 2025-02-09 20:32:15 +00:00
Fix some AnimationPlayer bugs and update documentation
This commit is contained in:
parent
d2765cd04a
commit
06a0a29711
@ -145,6 +145,7 @@
|
|||||||
</argument>
|
</argument>
|
||||||
<description>
|
<description>
|
||||||
Play the animation with key [code]name[/code]. Custom speed and blend times can be set. If custom speed is negative (-1), 'from_end' being true can play the animation backwards.
|
Play the animation with key [code]name[/code]. Custom speed and blend times can be set. If custom speed is negative (-1), 'from_end' being true can play the animation backwards.
|
||||||
|
If the animation has been paused by [code]stop(true)[/code] it will be resumed. Calling [code]play()[/code] without arguments will also resume the animation.
|
||||||
</description>
|
</description>
|
||||||
</method>
|
</method>
|
||||||
<method name="play_backwards">
|
<method name="play_backwards">
|
||||||
@ -156,6 +157,7 @@
|
|||||||
</argument>
|
</argument>
|
||||||
<description>
|
<description>
|
||||||
Play the animation with key [code]name[/code] in reverse.
|
Play the animation with key [code]name[/code] in reverse.
|
||||||
|
If the animation has been paused by [code]stop(true)[/code] it will be resumed backwards. Calling [code]play_backwards()[/code] without arguments will also resume the animation backwards.
|
||||||
</description>
|
</description>
|
||||||
</method>
|
</method>
|
||||||
<method name="queue">
|
<method name="queue">
|
||||||
@ -217,7 +219,8 @@
|
|||||||
<argument index="0" name="reset" type="bool" default="true">
|
<argument index="0" name="reset" type="bool" default="true">
|
||||||
</argument>
|
</argument>
|
||||||
<description>
|
<description>
|
||||||
Stop the currently playing animation. If [code]reset[/code] is [code]true[/code], the anim position is reset to [code]0[/code].
|
Stop the currently playing animation. If [code]reset[/code] is [code]true[/code], the animation position is reset to [code]0[/code] and the playback speed is reset to [code]1.0[/code].
|
||||||
|
If [code]reset[/code] is [code]false[/code], then calling [code]play()[/code] without arguments or [code]play("same_as_before")[/code] will resume the animation. Works the same for the [code]play_backwards()[/code] method.
|
||||||
</description>
|
</description>
|
||||||
</method>
|
</method>
|
||||||
</methods>
|
</methods>
|
||||||
|
@ -1205,9 +1205,16 @@ void AnimationPlayer::play(const StringName &p_name, float p_custom_blend, float
|
|||||||
_stop_playing_caches();
|
_stop_playing_caches();
|
||||||
|
|
||||||
c.current.from = &animation_set[name];
|
c.current.from = &animation_set[name];
|
||||||
c.current.pos = p_from_end ? c.current.from->animation->get_length() : 0;
|
|
||||||
|
if (c.assigned != name) { // reset
|
||||||
|
c.current.pos = p_from_end ? c.current.from->animation->get_length() : 0;
|
||||||
|
} else if (p_from_end && c.current.pos == 0) {
|
||||||
|
// Animation reset BUT played backwards, set position to the end
|
||||||
|
c.current.pos = c.current.from->animation->get_length();
|
||||||
|
}
|
||||||
|
|
||||||
c.current.speed_scale = p_custom_scale;
|
c.current.speed_scale = p_custom_scale;
|
||||||
c.assigned = p_name;
|
c.assigned = name;
|
||||||
c.seeked = false;
|
c.seeked = false;
|
||||||
c.started = true;
|
c.started = true;
|
||||||
|
|
||||||
@ -1286,6 +1293,7 @@ void AnimationPlayer::stop(bool p_reset) {
|
|||||||
if (p_reset) {
|
if (p_reset) {
|
||||||
c.current.from = NULL;
|
c.current.from = NULL;
|
||||||
c.current.speed_scale = 1;
|
c.current.speed_scale = 1;
|
||||||
|
c.current.pos = 0;
|
||||||
}
|
}
|
||||||
_set_process(false);
|
_set_process(false);
|
||||||
queued.clear();
|
queued.clear();
|
||||||
|
Loading…
Reference in New Issue
Block a user