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