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

📄 mdgame_template.cpp

📁 MDEngine2plus游戏开发库! 用来开发游戏超级简单!
💻 CPP
字号:
//
//			Programed by Johnhans   (C)2002   All Rights Reserved!
//
//
#define WIN32_LEAN_AND_MEAN

#include <windows.h>
#include <stdio.h>
#include "MD_Engine.h"
#include "MD_Surface.h"

//--------------------------------------------------------------------
// 宏定义
//--------------------------------------------------------------------
#define NAME "Project Name"


//-----------------------------------------------------------------------------
// 全局变量
//-----------------------------------------------------------------------------
CMD_Engine		Engine;

BOOL			bActive;						//程序是否挂起
bool			RunGame=true;					//程序运行中



bool InitEngine(HWND hWnd);						//初始化引擎设备
void UpdateFrame();
//-----------------------------------------------------------------------------
// Name: WindowProc()
// Desc: 主窗口消息处理
//-----------------------------------------------------------------------------
LRESULT CALLBACK WinProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
{
    switch( message )
    {
    case WM_ACTIVATE:		//应用程序激活消息
		if(LOWORD(wParam)==WA_INACTIVE)
			bActive = false;
		else if(HIWORD(wParam))
		{
			bActive = false;
			return 0;
		}
		else
			bActive = true;
        return 0;

	case WM_SYSKEYDOWN:
		switch(wParam)
		{
			case VK_F4:
				RunGame=false;
				break;
			case 18:
				return 0;
		}
		break;

    case WM_SETCURSOR:
		SetCursor(LoadCursor(NULL, IDC_ARROW));
		return TRUE;

	case WM_SIZE:
	case WM_MOVE:
		Engine.CalcWindowPos();
		break;
    case WM_KEYDOWN:		//击键消息
        switch( wParam )
        {
        case VK_ESCAPE:
			RunGame=false;
            break;
		case VK_F12:		// 按F12键截图
			Engine.SaveScreen("ScreenShot.bmp");
			break;
        }
        break;

    case WM_DESTROY:		//销毁窗口消息
        PostQuitMessage(0);
		RunGame=false;
        break;
    }
	//调用缺省的过程处理过程
    return DefWindowProc(hWnd, message, wParam, lParam);
}

//-----------------------------------------------------------------------------
// Name: WinMain()
// Desc: 初始化, 消息循环
//-----------------------------------------------------------------------------
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
    MSG msg;
    HWND hWnd;
    WNDCLASSEX wcex={0};

    //建立并注册窗口类
	wcex.cbSize=sizeof(WNDCLASSEX);
	wcex.style = CS_HREDRAW | CS_VREDRAW;
	wcex.lpfnWndProc = WinProc;
	wcex.hInstance=hInstance;
	wcex.lpszClassName = NAME;
	wcex.hbrBackground = (HBRUSH )GetStockObject(BLACK_BRUSH);
	wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
	wcex.hIconSm = LoadIcon(NULL, IDI_APPLICATION);

	RegisterClassEx(&wcex);
    //创建窗口
    hWnd = CreateWindowEx(WS_EX_APPWINDOW,NAME,NAME,WS_OVERLAPPEDWINDOW | WS_VISIBLE,0,0,GetSystemMetrics(SM_CXSCREEN)/2,GetSystemMetrics(SM_CYSCREEN)/2,NULL,NULL,hInstance,NULL);
    if (!hWnd)
	{
		UnregisterClass(NAME,hInstance);
		MessageBox(hWnd,"程序主框架创建失败!",NAME,MB_OK);
        return FALSE;
	}

	if(!InitEngine(hWnd))
	{
		MessageBox(hWnd,"游戏引擎初始化失败!",NAME,MB_OK);
		return false;
	}

	// Main message loop:
	while(RunGame)
	{
		//如果有消息则截获它
		if(PeekMessage(&msg,hWnd,0,0,PM_REMOVE))
		{
			if(msg.message == WM_QUIT)
				RunGame=false;

			TranslateMessage(&msg);
			DispatchMessage(&msg);
		}
		else if(bActive)
		{
			UpdateFrame();
		}
	}

	return msg.wParam;
}

bool InitEngine(HWND hWnd)
{
	return true;
}

void UpdateFrame()
{

}

⌨️ 快捷键说明

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