修复了更新后退出游戏崩溃的bug
This commit is contained in:
parent
65494fb0e3
commit
66869b0af5
|
|
@ -26,7 +26,6 @@ App::App() :
|
||||||
|
|
||||||
App::~App()
|
App::~App()
|
||||||
{
|
{
|
||||||
destory(); // 销毁 App
|
|
||||||
}
|
}
|
||||||
|
|
||||||
App * App::get()
|
App * App::get()
|
||||||
|
|
@ -35,23 +34,6 @@ App * App::get()
|
||||||
return s_pInstance; // 获取 App 的唯一实例
|
return s_pInstance; // 获取 App 的唯一实例
|
||||||
}
|
}
|
||||||
|
|
||||||
void App::setOrigin(int originX, int originY)
|
|
||||||
{
|
|
||||||
::originX = originX;
|
|
||||||
::originY = originY;
|
|
||||||
setorigin(originX, originY);
|
|
||||||
}
|
|
||||||
|
|
||||||
int App::getOriginX()
|
|
||||||
{
|
|
||||||
return ::originX;
|
|
||||||
}
|
|
||||||
|
|
||||||
int App::getOriginY()
|
|
||||||
{
|
|
||||||
return ::originY;
|
|
||||||
}
|
|
||||||
|
|
||||||
int App::run()
|
int App::run()
|
||||||
{
|
{
|
||||||
// 开启批量绘图
|
// 开启批量绘图
|
||||||
|
|
@ -95,8 +77,7 @@ int App::run()
|
||||||
// 计算挂起时长
|
// 计算挂起时长
|
||||||
waitMS = LONG((m_nAnimationInterval.QuadPart - interval) * 1000LL / freq.QuadPart) - 1L;
|
waitMS = LONG((m_nAnimationInterval.QuadPart - interval) * 1000LL / freq.QuadPart) - 1L;
|
||||||
// 挂起线程,释放 CPU 占用
|
// 挂起线程,释放 CPU 占用
|
||||||
if (waitMS > 1L)
|
if (waitMS > 1L) Sleep(waitMS);
|
||||||
Sleep(waitMS);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 停止批量绘图
|
// 停止批量绘图
|
||||||
|
|
@ -104,7 +85,7 @@ int App::run()
|
||||||
// 关闭窗口
|
// 关闭窗口
|
||||||
close();
|
close();
|
||||||
// 释放所有内存占用
|
// 释放所有内存占用
|
||||||
destory();
|
free();
|
||||||
// 重置时间精度
|
// 重置时间精度
|
||||||
timeEndPeriod(1);
|
timeEndPeriod(1);
|
||||||
|
|
||||||
|
|
@ -314,7 +295,7 @@ void App::_enterNextScene()
|
||||||
m_SceneStack.pop(); // 删除栈顶场景
|
m_SceneStack.pop(); // 删除栈顶场景
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_bSaveScene)
|
if (m_bSaveScene && m_pCurrentScene)
|
||||||
{
|
{
|
||||||
m_SceneStack.push(m_pCurrentScene); // 若要保存当前场景,把它的指针放到栈顶
|
m_SceneStack.push(m_pCurrentScene); // 若要保存当前场景,把它的指针放到栈顶
|
||||||
}
|
}
|
||||||
|
|
@ -376,6 +357,23 @@ int App::getHeight()
|
||||||
return s_pInstance->m_Size.cy;
|
return s_pInstance->m_Size.cy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void App::setOrigin(int originX, int originY)
|
||||||
|
{
|
||||||
|
::originX = originX;
|
||||||
|
::originY = originY;
|
||||||
|
setorigin(originX, originY);
|
||||||
|
}
|
||||||
|
|
||||||
|
int App::getOriginX()
|
||||||
|
{
|
||||||
|
return ::originX;
|
||||||
|
}
|
||||||
|
|
||||||
|
int App::getOriginY()
|
||||||
|
{
|
||||||
|
return ::originY;
|
||||||
|
}
|
||||||
|
|
||||||
void App::free()
|
void App::free()
|
||||||
{
|
{
|
||||||
// 释放场景内存
|
// 释放场景内存
|
||||||
|
|
@ -396,12 +394,3 @@ void App::free()
|
||||||
// 删除所有对象
|
// 删除所有对象
|
||||||
FreePool::__clearAllObjects();
|
FreePool::__clearAllObjects();
|
||||||
}
|
}
|
||||||
|
|
||||||
void App::destory()
|
|
||||||
{
|
|
||||||
// 释放所有内存
|
|
||||||
s_pInstance->free();
|
|
||||||
// 实例指针置空
|
|
||||||
delete s_pInstance;
|
|
||||||
s_pInstance = nullptr;
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -176,8 +176,6 @@ public:
|
||||||
static void reset();
|
static void reset();
|
||||||
// »ñÈ¡µ±Ç°³¡¾°
|
// »ñÈ¡µ±Ç°³¡¾°
|
||||||
static Scene * getCurrentScene();
|
static Scene * getCurrentScene();
|
||||||
// 销毁该对象
|
|
||||||
static void destory();
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
TString m_sTitle;
|
TString m_sTitle;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue