diff --git a/Easy2D/Action/EAction.cpp b/Easy2D/Action/EAction.cpp
index 321de49d..0d1b0829 100644
--- a/Easy2D/Action/EAction.cpp
+++ b/Easy2D/Action/EAction.cpp
@@ -97,6 +97,10 @@ void e2d::EAction::_reset()
{
m_bInit = false;
m_bEnding = false;
- // 记录当前时间
+ m_tLast = GetNow();
+}
+
+void e2d::EAction::_resetTime()
+{
m_tLast = GetNow();
}
diff --git a/Easy2D/Action/EActionLoop.cpp b/Easy2D/Action/EActionLoop.cpp
index 4808732e..18ca592d 100644
--- a/Easy2D/Action/EActionLoop.cpp
+++ b/Easy2D/Action/EActionLoop.cpp
@@ -53,3 +53,8 @@ void e2d::EActionLoop::_reset()
m_pAction->_reset();
m_nTimes = 0;
}
+
+void e2d::EActionLoop::_resetTime()
+{
+ m_pAction->_resetTime();
+}
diff --git a/Easy2D/Action/EActionSequence.cpp b/Easy2D/Action/EActionSequence.cpp
index c4ed1ffe..a21b84f2 100644
--- a/Easy2D/Action/EActionSequence.cpp
+++ b/Easy2D/Action/EActionSequence.cpp
@@ -73,6 +73,14 @@ void e2d::EActionSequence::_reset()
m_nActionIndex = 0;
}
+void e2d::EActionSequence::_resetTime()
+{
+ for (auto action : m_vActions)
+ {
+ action->_resetTime();
+ }
+}
+
void e2d::EActionSequence::addAction(EAction * action)
{
if (action)
diff --git a/Easy2D/Action/EActionTwo.cpp b/Easy2D/Action/EActionTwo.cpp
index 014ba43b..9ad503d9 100644
--- a/Easy2D/Action/EActionTwo.cpp
+++ b/Easy2D/Action/EActionTwo.cpp
@@ -70,3 +70,9 @@ void e2d::EActionTwo::_reset()
m_pFirstAction->_reset();
m_pSecondAction->_reset();
}
+
+void e2d::EActionTwo::_resetTime()
+{
+ m_pFirstAction->_resetTime();
+ m_pSecondAction->_resetTime();
+}
diff --git a/Easy2D/Action/EActionTwoAtSameTime.cpp b/Easy2D/Action/EActionTwoAtSameTime.cpp
index 0ab8af70..db40987a 100644
--- a/Easy2D/Action/EActionTwoAtSameTime.cpp
+++ b/Easy2D/Action/EActionTwoAtSameTime.cpp
@@ -69,3 +69,9 @@ void e2d::EActionTwoAtSameTime::_reset()
m_pFirstAction->_reset();
m_pSecondAction->_reset();
}
+
+void e2d::EActionTwoAtSameTime::_resetTime()
+{
+ m_pFirstAction->_resetTime();
+ m_pSecondAction->_resetTime();
+}
diff --git a/Easy2D/Base/EApp.cpp b/Easy2D/Base/EApp.cpp
index 4f8a9336..19ed3c2e 100644
--- a/Easy2D/Base/EApp.cpp
+++ b/Easy2D/Base/EApp.cpp
@@ -332,6 +332,11 @@ void e2d::EApp::_mainLoop()
void e2d::EApp::_onControl()
{
+ if (isPaused())
+ {
+ return;
+ }
+
// 正在切换场景时,执行场景切换动画
if (m_bTransitional)
{
@@ -708,13 +713,13 @@ LRESULT e2d::EApp::WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam
pEApp->m_bPaused = true;
}
}
- else
+ else if (pEApp->m_bPaused)
{
if (pEApp->getCurrentScene() &&
pEApp->getCurrentScene()->onActivate() &&
pEApp->onActivate())
{
- EApp::get()->m_bPaused = false;
+ pEApp->m_bPaused = false;
// 刷新当前时间
GetNow() = steady_clock::now();
// 重置动画和定时器
diff --git a/Easy2D/Easy2D.vcxproj b/Easy2D/Easy2D.vcxproj
index ecfdfd61..b5c27dde 100644
--- a/Easy2D/Easy2D.vcxproj
+++ b/Easy2D/Easy2D.vcxproj
@@ -101,7 +101,7 @@
Disabled
WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
true
- None
+ EditAndContinue
false
diff --git a/Easy2D/Manager/EActionManager.cpp b/Easy2D/Manager/EActionManager.cpp
index 731c50b4..24423e56 100644
--- a/Easy2D/Manager/EActionManager.cpp
+++ b/Easy2D/Manager/EActionManager.cpp
@@ -124,13 +124,13 @@ void e2d::EActionManager::_resetAllActions()
{
for (const auto & action : s_vActions)
{
- action->m_tLast = GetNow();
+ action->_resetTime();
}
}
void e2d::EActionManager::ActionProc()
{
- if (EApp::isPaused() || s_vActions.empty())
+ if (s_vActions.empty())
return;
// 循环遍历所有正在运行的动作
diff --git a/Easy2D/Manager/ETimerManager.cpp b/Easy2D/Manager/ETimerManager.cpp
index 71fc88c9..18827b25 100644
--- a/Easy2D/Manager/ETimerManager.cpp
+++ b/Easy2D/Manager/ETimerManager.cpp
@@ -8,7 +8,7 @@ static e2d::EVector s_vTimers;
void e2d::ETimerManager::TimerProc()
{
- if (s_vTimers.empty() || EApp::isPaused())
+ if (s_vTimers.empty())
return;
for (size_t i = 0; i < s_vTimers.size(); i++)
diff --git a/Easy2D/Tool/EFileUtils.cpp b/Easy2D/Tool/EFileUtils.cpp
index acea04dc..3d6aee6e 100644
--- a/Easy2D/Tool/EFileUtils.cpp
+++ b/Easy2D/Tool/EFileUtils.cpp
@@ -1,6 +1,5 @@
#include "..\etools.h"
#include "..\Win\winbase.h"
-#include
#include
#include
diff --git a/Easy2D/Tool/EMusicUtils - 鍓湰.cpp b/Easy2D/Tool/EMusicUtils - 鍓湰.cpp
new file mode 100644
index 00000000..c831de24
--- /dev/null
+++ b/Easy2D/Tool/EMusicUtils - 鍓湰.cpp
@@ -0,0 +1,525 @@
+#include "..\etools.h"
+#include "..\Win\winbase.h"
+#include