diff options
| author | Rémi Verschelde | 2017-01-02 15:54:58 +0100 |
|---|---|---|
| committer | GitHub | 2017-01-02 15:54:58 +0100 |
| commit | c9366f8b563c186b4d0ab09088d09d47580f749d (patch) | |
| tree | 7b404d449f4cae704eca15ad2689d1ffa31af29d | |
| parent | caddbbe17425def9f1f1a16045e870e3767f4096 (diff) | |
| parent | f6262fde11cac8b7d1a3d299042c1af6b321cf24 (diff) | |
| download | godot-c9366f8b563c186b4d0ab09088d09d47580f749d.tar.gz godot-c9366f8b563c186b4d0ab09088d09d47580f749d.tar.zst godot-c9366f8b563c186b4d0ab09088d09d47580f749d.zip | |
Merge pull request #7410 from nounoursheureux/master
Add the 'finished' signal to AnimatedSprite
Diffstat (limited to '')
| -rw-r--r-- | doc/base/classes.xml | 5 | ||||
| -rw-r--r-- | scene/2d/animated_sprite.cpp | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/doc/base/classes.xml b/doc/base/classes.xml index 5f2a46a5d..d63712782 100644 --- a/doc/base/classes.xml +++ b/doc/base/classes.xml @@ -2519,6 +2519,11 @@ Emitted when frame is changed. </description> </signal> + <signal name="finished"> + <description> + Emitted when the animation is finished (when it plays the last frame). If the animation is looping, this signal is emitted everytime the last frame is drawn, before looping. + </description> + </signal> </signals> <constants> </constants> diff --git a/scene/2d/animated_sprite.cpp b/scene/2d/animated_sprite.cpp index 5a5093957..2ead6b2c9 100644 --- a/scene/2d/animated_sprite.cpp +++ b/scene/2d/animated_sprite.cpp @@ -362,6 +362,9 @@ void AnimatedSprite::_notification(int p_what) { } } else { frame++; + if (frame==fc-1) { + emit_signal(SceneStringNames::get_singleton()->finished); + } } update(); @@ -696,6 +699,7 @@ void AnimatedSprite::_bind_methods() { ObjectTypeDB::bind_method(_MD("_res_changed"),&AnimatedSprite::_res_changed); ADD_SIGNAL(MethodInfo("frame_changed")); + ADD_SIGNAL(MethodInfo("finished")); ADD_PROPERTYNZ( PropertyInfo( Variant::OBJECT, "frames",PROPERTY_HINT_RESOURCE_TYPE,"SpriteFrames"), _SCS("set_sprite_frames"),_SCS("get_sprite_frames")); ADD_PROPERTY( PropertyInfo( Variant::STRING, "animation"), _SCS("set_animation"),_SCS("get_animation")); |
