From 9b4100d4149f3c91775bd3d5b95f6233a7290cc4 Mon Sep 17 00:00:00 2001 From: Nomango <569629550@qq.com> Date: Tue, 10 Oct 2017 08:52:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=8A=E6=AC=A1=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E5=90=8E=E5=8A=A8=E7=94=BB=E4=B8=8D=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Easy2D/Action/ActionFrames.cpp | 2 ++ Easy2D/Action/ActionMoveBy.cpp | 3 ++- Easy2D/Action/ActionOpacityBy.cpp | 3 ++- Easy2D/Action/ActionScaleBy.cpp | 3 ++- Easy2D/Easy2D.vcxproj | 2 +- 5 files changed, 9 insertions(+), 4 deletions(-) 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