⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 baseobject.h

📁 HGE 2D游戏引擎制作的一个演示
💻 H
字号:
/**********************************************
				所有对象的基类
**********************************************/

#ifndef CORE_BASEOBJECT_H
#define	CORE_BASEOBJECT_H

#pragma once

#include "define.h"
#include "core.h"

#ifndef ASSERT
/// 自定义断言信息框
inline static char* AssertMessageBox(char* lpszFileName,int nLine,char* lpszMore)
{
	static char szAssertBuffer[255];
	sprintf(szAssertBuffer,"File: %s\nLine: %d\n\nSee Also: %s\n\nPress Yes to exit the application.",lpszFileName,nLine,lpszMore);
	if(MessageBox(NULL,szAssertBuffer,"Assertion Failed!",MB_ICONERROR | MB_YESNO)==IDYES)
		ExitProcess(0);
	return szAssertBuffer;
}

/// 非调试状态下使用自定义的断言系统
#define ASSERT(expression) if(expression==NULL){AssertMessageBox(__FILE__,__LINE__,__FUNCTION__);}
#endif

#define DELETE_OBJECT(p)		{if(p){delete p;p=NULL;}};
#define DELETE_OBJECTARRAY(p)	{if(p){delete [] p;p=NULL;}};
#define RELEASE_OBJECT(p)		{if(p){p->Release();p=NULL;}};

/// 基类,所有类均从此类派生
class BaseObject
{

public:
	BaseObject(void){};
	virtual ~BaseObject(void){};
protected:
	/// 断言本身
	virtual void AssertSelf(){ASSERT(this!=NULL);};

	inline DWORD GetCurSecond(){return GetTickCount()/1000;}

	char* WarningBox(LPCTSTR m_szError,...)
	{
		static char szBuff[1024];
		va_list vl;
		va_start(vl, m_szError);
		vsprintf(szBuff, m_szError, vl);
		MessageBox(NULL,szBuff,"WarningBox", MB_OK);
		va_end(vl);
		return szBuff;
	}
};
#endif	//CORE_BASEOBJECT_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -