From 6bd05e60b97ddd8a02ba0cf8dcffdd35dfd353f8 Mon Sep 17 00:00:00 2001 From: Nomango <569629550@qq.com> Date: Fri, 6 Oct 2017 01:07:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86=E9=87=8D=E7=BD=AE?= =?UTF-8?q?=E5=8A=A8=E7=94=BB=E6=97=B6=E7=9A=84=E4=B8=80=E4=BA=9Bbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Easy2D/Action/ActionSequence.cpp | 1 + Easy2D/Action/ActionTwo.cpp | 37 +++++++++++++------------------- Easy2D/Base/App.cpp | 4 ++-- Easy2D/Tool/FileUtils.cpp | 2 +- Easy2D/easy2d.h | 5 +++-- 5 files changed, 22 insertions(+), 27 deletions(-) diff --git a/Easy2D/Action/ActionSequence.cpp b/Easy2D/Action/ActionSequence.cpp index 841bc569..ffd7cf2a 100644 --- a/Easy2D/Action/ActionSequence.cpp +++ b/Easy2D/Action/ActionSequence.cpp @@ -64,6 +64,7 @@ void ActionSequence::_reset() { action->_reset(); } + m_vActions[0]->_init(); m_nActionIndex = 0; } diff --git a/Easy2D/Action/ActionTwo.cpp b/Easy2D/Action/ActionTwo.cpp index 9e3a7f7c..4bdb1fcc 100644 --- a/Easy2D/Action/ActionTwo.cpp +++ b/Easy2D/Action/ActionTwo.cpp @@ -2,10 +2,11 @@ ActionTwo::ActionTwo(Action * actionFirst, Action * actionSecond) : m_FirstAction(actionFirst), - m_SecondAction(actionSecond) + m_SecondAction(actionSecond), + m_bFirstFinished(false) { - if (m_FirstAction) m_FirstAction->retain(); - if (m_SecondAction) m_SecondAction->retain(); + m_FirstAction->retain(); + m_SecondAction->retain(); } ActionTwo::~ActionTwo() @@ -34,9 +35,9 @@ ActionTwo * ActionTwo::reverse(bool actionReverse) const void ActionTwo::_init() { m_FirstAction->m_pParent = m_pParent; - m_FirstAction->_init(); - m_SecondAction->m_pParent = m_pParent; + + m_FirstAction->_init(); } bool ActionTwo::_exec(LARGE_INTEGER nNow) @@ -44,27 +45,16 @@ bool ActionTwo::_exec(LARGE_INTEGER nNow) if (m_bStop) return true; if (!m_bRunning) return false; - if (m_FirstAction) + if (!m_bFirstFinished) { if (m_FirstAction->_exec(nNow)) { - // 返回 true 表示第一个动作已经结束,删除这个 - // 动作,并初始化第二个动作 - SafeRelease(m_FirstAction); - m_FirstAction = nullptr; + // 返回 true 表示第一个动作已经结束 m_SecondAction->_init(); + m_bFirstFinished = true; } } - else if (m_SecondAction) - { - if (m_SecondAction->_exec(nNow)) - { - SafeRelease(m_SecondAction); - m_SecondAction = nullptr; - return true; - } - } - else + else if (m_SecondAction->_exec(nNow)) { return true; } @@ -73,6 +63,9 @@ bool ActionTwo::_exec(LARGE_INTEGER nNow) void ActionTwo::_reset() { - if (m_FirstAction) m_FirstAction->_reset(); - if (m_SecondAction) m_SecondAction->_reset(); + m_FirstAction->_reset(); + m_SecondAction->_reset(); + + m_FirstAction->_init(); + m_bFirstFinished = false; } diff --git a/Easy2D/Base/App.cpp b/Easy2D/Base/App.cpp index ba038cb5..a4a8b963 100644 --- a/Easy2D/Base/App.cpp +++ b/Easy2D/Base/App.cpp @@ -141,7 +141,7 @@ void App::_initGraph() TCHAR title[31]; GetWindowText(GetHWnd(), title, 30); m_sTitle = title; - m_sAppName = title; + if (m_sAppName.empty()) m_sAppName = title; } else { @@ -320,7 +320,7 @@ void App::_enterNextScene() } else { - SafeDelete(m_CurrentScene); // 否则删除当前场景 + SafeDelete(m_CurrentScene); // 删除当前场景 } m_CurrentScene = m_NextScene; // 切换场景 diff --git a/Easy2D/Tool/FileUtils.cpp b/Easy2D/Tool/FileUtils.cpp index 4d5179d6..89ea7164 100644 --- a/Easy2D/Tool/FileUtils.cpp +++ b/Easy2D/Tool/FileUtils.cpp @@ -43,7 +43,7 @@ TString FileUtils::getDefaultSavePath() TString path = m_lpszDefaultDir; path.append(_T("\\")); - path.append(App::get()->getAppName()); + path.append(App::getAppName()); #ifdef UNICODE if (_waccess(path.c_str(), 0) == -1) diff --git a/Easy2D/easy2d.h b/Easy2D/easy2d.h index 73eb2277..9c1d5317 100644 --- a/Easy2D/easy2d.h +++ b/Easy2D/easy2d.h @@ -1218,8 +1218,9 @@ public: virtual ActionTwo * reverse(bool actionReverse = true) const; protected: - Action * m_FirstAction; - Action * m_SecondAction; + Action * m_FirstAction; + Action * m_SecondAction; + bool m_bFirstFinished; protected: virtual void _init() override;