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

📄 game.h

📁 游戏编程很好的东西大家看看啊可以学到很多东西
💻 H
字号:
#ifndef __GMAE_H_
#define __GMAE_H_

/////////////////////////////////////////////////////////////////////////////
#include <windows.h>

/////////////////////////////////////////////////////////////////////////////
HWND				g_h_wnd			= NULL;
HINSTANCE			g_h_instance	= NULL;

bool				g_b_quit		= false;

int					g_n_bit			= 8;
int					g_n_width		= 640;
int					g_n_height		= 480;

char				g_szClassName[]	= "MyClass";
char				g_szWindowName[]= "MyWindow";	

/////////////////////////////////////////////////////////////////////////////

ATOM				MyRegisterClass(HINSTANCE hInstance);
BOOL				InitInstance(HINSTANCE hInstance,int nCmdShow);
LRESULT CALLBACK	WndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam);

void				KeyAction(WPARAM wParam);

WPARAM				MainLoop();

void				Game_Init();
void				Game_UnInit();
void				Game_Main();

///////////////////////////////////////////////////////////////////////////////
ATOM MyRegisterClass(HINSTANCE hInstance)
{
	WNDCLASSEX wc;

	memset(&wc,0,sizeof(wc));

	wc.cbSize		= sizeof(wc);
	wc.style		= CS_OWNDC;
	wc.lpfnWndProc	= (WNDPROC)WndProc;
	wc.cbClsExtra	= 0;
	wc.cbWndExtra	= 0;
	wc.hIcon		= LoadIcon(NULL,IDI_APPLICATION);
	wc.hCursor		= LoadCursor(NULL,IDC_ARROW);
	wc.hbrBackground= (HBRUSH)GetStockObject(BLACK_BRUSH);
	wc.hInstance	= hInstance;
	wc.lpszClassName= g_szClassName;
	wc.lpszMenuName	= NULL;
	wc.hIconSm		= LoadIcon(NULL,IDI_APPLICATION);

	return RegisterClassEx(&wc);
}

BOOL InitInstance(HINSTANCE hInstance,int nCmdShow)
{
	HWND hwnd;

	g_h_instance = hInstance;

	hwnd=CreateWindow(
		g_szClassName,
		g_szWindowName,
		WS_POPUP | WS_VISIBLE | WS_CLIPSIBLINGS,
		0,0,
		GetSystemMetrics(SM_CXSCREEN),
		GetSystemMetrics(SM_CYSCREEN),
		NULL,NULL,hInstance,NULL);

	if(hwnd)
	{
		g_h_wnd = hwnd;
		ShowWindow(hwnd,nCmdShow);
		UpdateWindow(hwnd);

		return TRUE;
	}

	return FALSE;
}

LRESULT CALLBACK WndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
	switch(msg)
	{
	case WM_KEYDOWN:
		{
			switch(wParam)
			{
			case VK_ESCAPE:
				{
					PostMessage(hWnd,WM_CLOSE,0,0);
				}
				break;
			default:
				{
					KeyAction(wParam);
				}
				break;
			}
		}
		break;
	case WM_CLOSE:
		{
			DestroyWindow( hWnd );
		}
		break;
	case WM_DESTROY:
		{
			PostQuitMessage(0);
		}
		break;
	default:
		{
		}
		return DefWindowProc(hWnd,msg,wParam,lParam);
	}
	return 0;
}

WPARAM MainLoop()
{
	MSG			msg;

	g_b_quit	= false;

	while( !g_b_quit )
	{
		if( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) > 0 )
		{
			if( msg.message == WM_QUIT )
			{
				g_b_quit = true;
			}
			else
			{
				TranslateMessage( &msg );
				DispatchMessage(  &msg );
			}
		}
		else
		{
			Game_Main();
		}
	}

	Game_UnInit();

	return msg.wParam;
}

int WINAPI WinMain(
				   HINSTANCE hInstance,
				   HINSTANCE hPrevInstance,
				   LPSTR	 lpCmdLine,
				   int		 nCmdShow)
{
	if(!MyRegisterClass(hInstance))
	{
		return 0;
	}

	if(!InitInstance(hInstance,nCmdShow))
	{
		return 0;
	}

	Game_Init();

	return MainLoop();
}

//////////////////////////////////////////////////////////////////////////////

#endif	//__GMAE_H_

⌨️ 快捷键说明

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