From 27ab95037f3f6d4f2a3674db99dd1946df07521e Mon Sep 17 00:00:00 2001 From: frank Date: Wed, 6 Mar 2024 21:22:07 -0500 Subject: [PATCH] add Animation constructor with just frame length parameter --- src/Animation.hpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/Animation.hpp b/src/Animation.hpp index 1a02c98..a2e6593 100644 --- a/src/Animation.hpp +++ b/src/Animation.hpp @@ -32,10 +32,10 @@ public: Animation(); /*! - * @deprecated It is preferable to use the default constructor, provide a frame length using Animation::frame_length(float), and - * omit the callback function. This is because storing the callback function in this object can create copying issues when - * std::bind is used to create the callback. Instead, check the return value of Animation::update(float) to determine whether or - * not to call the desired callback externally. + * @deprecated It is preferable to use Animation::Animation() or Animation::Animation(float) and omit the callback function, + * which will eventually be removed from this object. This is because storing the callback function can create copying issues + * when std::bind is used to create the callback and the bound object is destroyed before the callback is called. Instead, + * check the return value of Animation::update(float) to determine whether or not to call the desired callback externally. * * Create an Animation object by supplying a function and interval at which the function should run. Run Animation::update(float) * regularly with an updated timestamp from Game::update(float), and the function will be launched automatically at the given @@ -49,6 +49,17 @@ public: timer.off(); } + /*! + * Create an Animation object with a specific amount of time in seconds between each frame. Animation::update(float) will only + * return true when it is time to display another frame. + * + * @param frame_length seconds between each frame + */ + Animation(float frame_length) : _frame_length(frame_length) + { + timer.off(); + } + /*! * Set the duration in seconds of each frame of the animation. *