📄 main.cpp
字号:
#include "windows.h"
#include "game.h"
#include "stdio.h"
#include "mmsystem.h"
#pragma comment(lib,"winmm.lib")
#define WIDTH 800
#define HEIGHT 600
CGame* g_Game;
BOOL g_bActive = FALSE;
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR lpszCommandLine, int cmdShow)
{
char ClassName[] = "bomb";
char WindowName[] = "泡泡堂";
WNDCLASSEX wc;
HWND hWnd;
MSG msg;
// 注册窗口类
wc.cbClsExtra = 0;
wc.cbSize = sizeof( WNDCLASSEX );
wc.cbWndExtra = 0;
wc.hbrBackground = ( HBRUSH ) GetStockObject( WHITE_BRUSH );
wc.hCursor = (HCURSOR)LoadCursor(NULL,IDC_ARROW);
wc.hIcon = NULL;
wc.hIconSm = NULL;
wc.hInstance = hInstance;
wc.lpfnWndProc = WndProc;
wc.lpszClassName = ClassName;
wc.lpszMenuName = NULL;
wc.style = CS_HREDRAW | CS_VREDRAW;
RegisterClassEx( &wc );
// 创建窗口
hWnd = CreateWindow( ClassName, WindowName, WS_OVERLAPPEDWINDOW,
(GetSystemMetrics(SM_CXFULLSCREEN)-WIDTH)/2,
(GetSystemMetrics(SM_CYFULLSCREEN)-HEIGHT)/2, WIDTH, HEIGHT, NULL, NULL, hInstance, NULL );
// 显示窗口
ShowWindow( hWnd, SW_SHOWDEFAULT );
UpdateWindow( hWnd );
ShowCursor(FALSE);
// 初始化
g_Game = new CGame;
g_Game->Create(hWnd, hInstance);
// 消息循环
PeekMessage(&msg, NULL, 0U, 0U, PM_NOREMOVE);
while(msg.message != WM_QUIT)
{
if(PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE))
{
// 处理消息
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else if( g_bActive )
{
// 没有消息,处理场景
g_Game->Run();
}
}
delete g_Game;
UnregisterClass(ClassName,hInstance);
return (int)msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_KEYDOWN:
switch (wParam)
{
case VK_ESCAPE:
PostQuitMessage(0);
break;
default:
break;
}
case WM_MOVE:
if( g_Game )
g_Game->m_pDraw->UpdateBounds();
break;
case WM_SIZE:
if( SIZE_MAXHIDE==wParam || SIZE_MINIMIZED==wParam )
g_bActive = FALSE;
else
g_bActive = TRUE;
if( g_Game )
g_Game->m_pDraw->UpdateBounds();
break;
case WM_PAINT:
if( g_Game )
g_Game->Run();
break;
}
return DefWindowProc(hWnd, message, wParam, lParam);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -