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