修复了更新后退出游戏崩溃的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