visual studio 2010 扫雷游戏API的实现方法

visual studio 2010 扫雷游戏API的实现方法

ID:40491225

大小:625.95 KB

页数:20页

时间:2019-08-03

visual studio 2010 扫雷游戏API的实现方法_第1页
visual studio 2010 扫雷游戏API的实现方法_第2页
visual studio 2010 扫雷游戏API的实现方法_第3页
visual studio 2010 扫雷游戏API的实现方法_第4页
visual studio 2010 扫雷游戏API的实现方法_第5页
资源描述:

《visual studio 2010 扫雷游戏API的实现方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、经典扫雷游戏C++API函数的实现方法扫雷对大家来说应该是非常熟悉和经典的游戏之一了,但是这样一个看似简单的小游戏是如何实现的呢?其实方法有很多种,相信我们大家都学过C++,我就先提供一种利用C++中的API函数实现扫雷的方法。代码使用说明:游戏实现后的功能,鼠标左键单击掀开未知区域,鼠标右键单击设置标记,鼠标中间滑轮单击实现自动翻开功能。1首先打开VisualStudio2010软件;2点击文件->新建->项目3选择Win32中的Win32项目:4确定后点击“下一步”:如下图中勾选,点击完成即可:5点击视图主菜单(View)->解决方案资源管理器:6

2、在右侧的解决方案资源管理器中的头文件文件夹中添加下面的头文件(.h),在源文件文件夹下添加下面的源文件(.cpp文件)以下是实现的各部分代码:首先我们来写程序的入口程序WinMain函数:文档命名为WinMain.cpp#include"proc.h"#include"caculate.h"externcharco[xk][yk];externcharth[xk][yk];intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInst,LPSTRlpszCmdLine,intnCmdShow){creat(

3、th);num(th);cover(th,co);MSGMsg;if(!InitWindowsClass(hInstance))returnFALSE;if(!InitWindows(hInstance,nCmdShow))returnFALSE;//-----------------消息循环----------------------while(GetMessage(&Msg,NULL,0,0)){TranslateMessage(&Msg);DispatchMessage(&Msg);}returnMsg.wParam;//消息循环结束即程序终止时

4、将信息返回系统}由于Windows是基于消息的传递机制,所以接下来编写过程处理函数:命名为Proc.cpp#include"proc.h"#include"caculate.h"externintrecord[xk][yk]={0};//记录窗口的图形状态0为关闭、1为开启、2为占旗externcharco[xk][yk];externcharth[xk][yk];externintxs,ys;externinttn;voidprint(charco[xk][yk],HWNDhWnd,intini_x,intini_y,intwidth,intheig

5、ht,intcir_len);longWINAPIWndProc(HWNDhWnd,UINTiMessage,UINTwParam,LONGlParam){intwidth=d_width,height=d_height,ini_x=d_ini_x,ini_y=d_ini_y,cir_len=8,mine_x=ys,mine_y=xs,cyc_x,cyc_y;intmove_x,move_y,record_i,record_j,flag;inttest_x,test_y;WORDmouse_x,mouse_y;HDChDC;//定义指向设备的句柄HBR

6、USHhBrush,hB;//定义指向画刷的句柄HPENhPen;//定义指向画笔的句柄PAINTSTRUCTPtStr;//定义指向包含绘图信息的结构体变量WORDx,y;HCURSORhCursor;TEXTMETRICtm;wchar_tlpsz1[]=L"重新开局",lpsz2[]=L"重试本局",lpsz[3],lpsz_text[]=L"剩余标记数:";inti,j;//揭开时的坐标switch(iMessage)//处理消息{caseWM_MOUSEMOVE:x=LOWORD(lParam);y=HIWORD(lParam);if(x>=

7、ini_x&&x<=ini_x+width*mine_x&&y>=ini_y&&y<=ini_y+height*mine_y){hCursor=LoadCursor(NULL,IDC_CROSS);SetCursor(hCursor);}/*if(x>=20+2*d_ini_x+ys*d_width&&x<=20+2*d_ini_x+ys*d_width+70&&y>=10&&y<=10+height){hDC=GetDC(hWnd);SetMapMode(hDC,MM_ANISOTROPIC);//设置映像模式hPen=(HPEN)GetStockO

8、bject(BLACK_PEN);//黑色画笔hB=(HBRUSH)GetStockObjec

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。