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

📄 gameapp.h

📁 使用DirectX9 写的通用3D游戏框架
💻 H
字号:
#pragma once

#include "GameHeader.h"

//====================================================================
//程序框架

class CGameApp
{
public:
	enum GAMESTATE { GAMEMENU, GAMEPLAY };	//游戏状态

	CGameApp(	HINSTANCE hInstance,		//实例句柄
				std::string winCaption,		//窗口标题
				D3DDEVTYPE devType,			//D3D设备类型
				DWORD vertexProcessType);	//顶点处理模式

	virtual ~CGameApp();

	void		Run();								//程序入口函数
	LRESULT		MsgProc
		(UINT msg, WPARAM wParam, LPARAM lParam);	//窗口过程函数

	HINSTANCE	GetAppInst();		//获取实例句柄
	HWND		GetMainWnd();		//获取窗口句柄

public:
	//框架函数 根据需要重写
	virtual	int		InitScene()		{ return 0;}	//初始化场景
	virtual void	UpdateScene()	{}				//更新场景
	virtual void	RenderScene()	{}				//渲染场景

	virtual void	InitMenu()		{}	//初始化菜单
	virtual void	UpdateMenu()	{}	//更新菜单
	virtual void	RenderMenu()	{}	//渲染菜单

	virtual void CleanUp()			//释放资源
	{
		SafeRelease(g_pd3dObject);
		SafeRelease(g_pd3dDevice);
	}

protected:
	void InitMainWindow();			//初始化窗口
	void InitDirect3D();			//初始化Direct3D
	void PlayGame();				//执行游戏

	void BeginRender();
	void EndRender();

protected:
	std::string			MainWndCaption;		//窗口标题
	D3DDEVTYPE			DevType;			//D3D设备类型
	DWORD				VertexProcessType;	//顶点处理方式
	GAMESTATE			GameState;			//游戏状态

	HINSTANCE			g_hAppInst;			//实例句柄
	HWND				g_hMainWnd;			//窗口句柄
	LPDIRECT3D9			g_pd3dObject;		// Direct3D对象
	LPDIRECT3DDEVICE9	g_pd3dDevice;		// Direct3D设备对象
	DWORD				g_dwScreenWidth;	//屏幕宽度
	DWORD				g_dwScreenHeight;	//屏幕高度

};

//====================================================================
//全局游戏
extern CGameApp *g_pGame;

⌨️ 快捷键说明

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