diff --git a/Easy2D/Action/ActionFrames.cpp b/Easy2D/Action/ActionFrames.cpp index c04a3744..582bf48b 100644 --- a/Easy2D/Action/ActionFrames.cpp +++ b/Easy2D/Action/ActionFrames.cpp @@ -18,6 +18,7 @@ ActionFrames::~ActionFrames() { for (auto frame : m_vFrames) { + frame->autoRelease(); frame->release(); } } @@ -42,6 +43,7 @@ void ActionFrames::_exec(steady_clock::time_point nNow) if (m_nFrameIndex == m_vFrames.size()) { this->stop(); + break; } } } diff --git a/Easy2D/Action/ActionMoveBy.cpp b/Easy2D/Action/ActionMoveBy.cpp index a61207ef..ebc83a66 100644 --- a/Easy2D/Action/ActionMoveBy.cpp +++ b/Easy2D/Action/ActionMoveBy.cpp @@ -19,7 +19,7 @@ void ActionMoveBy::_init() void ActionMoveBy::_exec(steady_clock::time_point nNow) { - if (Animation::_isDelayEnough(nNow)) + while (Animation::_isDelayEnough(nNow)) { // 计算移动位置 float scale = float(m_nDuration) / m_nTotalDuration; @@ -30,6 +30,7 @@ void ActionMoveBy::_exec(steady_clock::time_point nNow) if (_isEnd()) { this->stop(); + break; } } } diff --git a/Easy2D/Action/ActionOpacityBy.cpp b/Easy2D/Action/ActionOpacityBy.cpp index da200578..2d9ea7c0 100644 --- a/Easy2D/Action/ActionOpacityBy.cpp +++ b/Easy2D/Action/ActionOpacityBy.cpp @@ -19,7 +19,7 @@ void ActionOpacityBy::_init() void ActionOpacityBy::_exec(steady_clock::time_point nNow) { - if (Animation::_isDelayEnough(nNow)) + while (Animation::_isDelayEnough(nNow)) { // 计算移动位置 float scale = float(m_nDuration) / m_nTotalDuration; @@ -29,6 +29,7 @@ void ActionOpacityBy::_exec(steady_clock::time_point nNow) if (_isEnd()) { this->stop(); + break; } } } diff --git a/Easy2D/Action/ActionScaleBy.cpp b/Easy2D/Action/ActionScaleBy.cpp index 768072fc..b86f0f5c 100644 --- a/Easy2D/Action/ActionScaleBy.cpp +++ b/Easy2D/Action/ActionScaleBy.cpp @@ -21,7 +21,7 @@ void ActionScaleBy::_init() void ActionScaleBy::_exec(steady_clock::time_point nNow) { - if (Animation::_isDelayEnough(nNow)) + while (Animation::_isDelayEnough(nNow)) { // 计算移动位置 float scale = float(m_nDuration) / m_nTotalDuration; @@ -31,6 +31,7 @@ void ActionScaleBy::_exec(steady_clock::time_point nNow) if (_isEnd()) { this->stop(); + break; } } } diff --git a/Easy2D/Easy2D.vcxproj b/Easy2D/Easy2D.vcxproj index ce91ac53..b9c06cd1 100644 --- a/Easy2D/Easy2D.vcxproj +++ b/Easy2D/Easy2D.vcxproj @@ -287,7 +287,7 @@ true WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) true - EditAndContinue + None Console