资源简介

此为博主的windows编程课程作业,游戏模式和是“男人就下一百层”相似。代码简洁易懂,非常适合学习使用,ui设计美观可爱(贱萌的提莫)。各种资源完备,可以直接调试。并且由博主调试完成后上传,可直接运行。

资源截图

代码片段和文件信息

//疯狂的提百万
#include 
#pragma comment(lib“winmm.lib“)
#include 

//常量
//窗口大小
#define WINDOW_WIDTH GetSystemMetrics(SM_CXSCREEN)
#define WINDOW_HEIGHT GetSystemMetrics(SM_CYSCREEN)
//计时器ID
#define TIMER 1
//板块类型
//石板
#define BOARD_STONE 0
//木板
#define BOARD_WOOD 1
//钉板
#define BOARD_DOG 2
//弹簧
#define BOARD_SPRING 3
//板块元素数
#define BOARD_COUNT 10
//角色高度
#define ROLE_HEIGHT 83
#define ROLE_WIDTH 83
//角色状态
//向左
#define ROLE_LEFT 0
//向右
#define ROLE_RIGHT 1
//发呆
#define ROLE_LOGY 2

//全局变量
HDC g_hDrawDC;//绘制设备上下文
HBITMAP g_hDrawBmp;//绘制位图
bool g_bStart=false;//指示是否开始游戏
HWND g_hMainWnd;//主窗口句柄
HINSTANCE g_hInstance;//程序实例句柄
bool bMoved=false;//角色是否移动过
int num=0;
int nKey;

struct Board//板块描述
{
int nType;//板块类型
int nState;//板块状态
int nStep;//计数
int xy;//板块位置
};
Board g_Board[BOARD_COUNT];
struct Role//角色信息
{
int nState;//角色状态用于绘制图片0向左1向右2发呆
int nStep;//向左向右的步数0~2
int nFloorCount;//当前层数
int xy;//角色位置
int Count;//角色生命数
} g_Role;
char g_strInfo[10];//提示信息

//子程式声明
LRESULT CALLBACK WndProc(HWND hWndUINT uMsgWPARAM wParamLPARAM lParam);
void Draw();//绘制游戏画面
void GameInit();//游戏初始化
void BoardDeal();//板块上升处理

int WINAPI WinMain(HINSTANCE hInstanceHINSTANCE hPrevInstanceLPSTR lpCmdLineint nShowCmd)
{
HWND hWnd;
WNDCLASS wc;
MSG Msg;

//注册窗口类
wc.lpszClassName=“TheMan“;
wc.lpszMenuName=NULL;
wc.lpfnWndProc=WndProc;
wc.style=CS_OWNDC;
wc.hCursor=LoadCursor(NULLIDC_ARROW);
wc.hIcon=LoadIcon(hInstance“ICON“);
wc.hbrBackground=(HBRUSH)COLOR_WINDOW;
wc.hInstance=hInstance;
wc.cbClsExtra=0;
wc.cbWndExtra=0;

RegisterClass(&wc);

//将窗口显示到屏幕中央
int xy;//用于计算窗口显示位置
int x2y2;

x=(GetSystemMetrics(SM_CXSCREEN)-393)/2;
y=(GetSystemMetrics(SM_CYSCREEN)-330)/6;
x2=(GetSystemMetrics(SM_CXSCREEN)-407)/2;
y2=(GetSystemMetrics(SM_CYSCREEN)-495)/4;

hWnd=CreateWindow(“TheMan““疯狂的提百万--MADE BY Gatsbyla Q2450569529“WS_VISIBLE|WS_SYSMENU|WS_MINIMIZEBOX
CW_USEDEFAULT
CW_USEDEFAULT
GetSystemMetrics(SM_CXSCREEN) GetSystemMetrics(SM_CYSCREEN)
NULLNULL
hInstanceNULL);

if(!hWnd)
{
MessageBox(NULL“创建窗口失败!““Error“MB_OK);
return 0;//退出程序
}

g_hMainWnd=hWnd;
g_hInstance=hInstance;

//创建绘制设备上下文
g_hDrawDC=CreateCompatibleDC(GetDC(hWnd));
//必须用GetDC(hWnd)作为下面函数的参数,若用g_hDrawDC绘制出的为黑白图,不是彩色的
g_hDrawBmp=CreateCompatibleBitmap(GetDC(hWnd)WINDOW_WIDTHWINDOW_HEIGHT);//创建与窗口大小相同的位图用于刷新窗口
//绑定位图到DC
Selectobject(g_hDrawDCg_hDrawBmp);

//绘制底色
RECT rt;
rt.left=0;
rt.top=0;
rt.right=WINDOW_WIDTH;
rt.bottom=WINDOW_HEIGHT;
FillRect(g_hDrawDC&rtNULL);

//绘制Logo
HBITMAP hBmp;
HDC hDC;

hDC=CreateCompatibleDC(GetDC(hWnd));
hBmp=LoadBitmap(hInstance“LOGO“);
Selectobject(hDChBmp);
TransparentBlt(g_hDrawDCx-150y393330hDC003933300xFFFFFF);//0xFFFFFF为要屏蔽的白色
    hBmp=LoadBitmap(hInstance“背景1“);

评论

共有 条评论