- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 - 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
 - 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
 - 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
 - 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
 
                        查看更多
                        
                    
                CGame类
                    CGame类定义
class CGame
{
public:
//构造函数
	CGame(HWND hWnd,bool bWindowed = true,int nFps = 0);		
	virtual ~CGame(void);
public://--处理相应的鼠标和键盘事件,这里设置为虚函数,其子类可以根据程序需要加以重写-
	virtual void HandleLMouseUp(WPARAM wParam,LPARAM lParam){}				
	virtual void HandleLMouseDown(WPARAM wParam,LPARAM lParam){}
	virtual void HandleLMouseMove(WPARAM wParam,LPARAM lParam){}
	virtual void HandleDoubleClick(WPARAM wParam,LPARAM lParam){}
	virtual void HandleKeyUp(WPARAM wParam,LPARAM lParam){}
	virtual void HandleKeyDown(WPARAM wParam,LPARAM lParam){}
//-------------------------------------------------------------------------------------------------------------
	virtual void InitGame();							//虚函数,创建资源		
	virtual void Func(float fDeltaTime);			//帧函数	
	virtual void Render();							//渲染	
	void Update();									//更新
	virtual void CreateSpriteManager(LPDIRECT3DDEVICE9 pD3DDevice);
	virtual void CreateResourceManager(LPDIRECT3DDEVICE9 pD3DDevice);
	HRESULT 	Init3D(HWND hWnd);
protected:
	LPDIRECT3D9				pD3D;
	LPDIRECT3DDEVICE9		pD3DDevice;
	D3DPRESENT_PARAMETERS d3dpp;
	CSpriteManager		*pSpriteManager;			//精灵管理对象指针	
	CResourceManager	*pResManager;			//资源管理对象指针	
	HWND			hWnd;					//窗口句柄
	int					nFps;					//每秒多少帧
	RECT				rectClient;			//客户区矩形
	DWORD				t0;						//前一帧的时刻
	int					nFixedDeltaTime;			//固定的时间
	bool				bWindowed;
	double				t;						//计算帧频所需要的累计时间
	int					nfps;					//帧频
	unsigned int        nFrames;					//总帧数
	TCHAR             szBuf[255];		//将帧频转换为字符串所用到的字符缓冲
	D3DXMATRIX		matView;
	D3DXMATRIX       matProj;
bool                	bReadyToRender;
	HRESULT				devState;
	//CFont				*pFont;
	void Cleanup();
	void SetupViewer();
	void SetupProjection();
	void SetupDeviceState();
	HRESULT Restore();
	 
};
 实现细节
构造CGame对象
在构造一个CGame对象时,CGame需要知道与之打交道的窗口句柄是什么?要创建的D3D环境是基于窗口的还是基于全凭模式的?以及程序运行时需要锁定的帧频。这些参数都可以作为CGame类的构造函数的参数传入。
在构造CGame对象时,也需要完成相应的成员变量初始化的工作。如下:
	CGame::CGame(HWND hWnd,bool bWindowed,int nFps)
{
	this-nFps = nFps;		//记录程序要求锁定的帧频
	this-hWnd = hWnd;
	if (nFps  0)		//如果要锁定的帧频大于0
                
原创力文档
                        

文档评论(0)