欢迎来到天天文库
浏览记录
ID:26107226
大小:320.00 KB
页数:22页
时间:2018-11-24
《win-tc(c语言)小游戏编程实例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Win-Tc(C语言)小游戏编程实例扫雷游戏的游戏界面采用3D窗体显示,用鼠标操作实现整个游戏过程。 图1、3D窗体扫雷游戏界面图2、游戏中打开非雷方块游戏规则游戏开始时,系统会在布雷区小方块中随机设置游戏级别中规则的雷体个数。布好雷后系统会在非雷方块中填上表示其周围8个方块中有多少雷体的数字,(如图2所示)。玩家用鼠标左键点开布雷区方块后开始计时,玩家可根据非雷方块中数字正确判断打开所有非雷方块后,游戏胜利结束,系统会自动打开所有雷方块,并显示胜利会话框。在游戏过程中,如果提前打
2、开雷方块则立即失败,游戏结束(如图3所示)。游戏计时为999秒,如果时间到了系统会自动结束游戏。 图3、提前打开雷方块 图4、打开Game按钮子菜单Game按钮单击事件鼠标左键单击Game按钮会打开如图4所示的子程序选择会话框,玩家可选择5种功能中的某一项来实现某种功能。5种功能分别如下所示:BEGIN按钮―――――――开局(重新开始)PRIMARY按钮―――――――初级(级别)INTERMEDIATE―――――――中级(级别)HIGH按钮――
3、――――――――高级(级别)EXIT――――――――――――-返回操作系统(退出应用程序)程序基本流程如下:开始――调用鼠标程序(如果调用失败退出)――创建并显示窗体――布雷(初始化设置)――游戏(玩家操作(打开非雷方块、提前打开雷方块游戏结束、Game事件(重新开始))――判断胜利(胜利(显示胜利会话框)、Game事件(重新开始))――Close按钮事件(退出应用程序返回操作系统)扫雷游戏程序源码清单如下:#include#include#include#
4、include#definePRIMARY1/*初级标识符*/#definePRIMARYCOLUMN9/*初级布雷区列数*/#definePRIMARYROW9/*初级布雷区行数*/#definePRIMARYMINE10/*初级布雷区雷的数目*/#defineINTERMEDIATE2/*中级标识符*/#defineINTERMEDIATECOLUMN16/*中级布雷区列数*/#defineINTERMEDIATEROW16/*中级布雷区行数*/#defineINTERMEDIATEMINE40/*
5、中级布雷区雷的数目*/#defineHIGH3/*高级标识符*/#defineHIGHCOLUMN30/*高级布雷区列数*/#defineHIGHROW16/*高级布雷区行数*/#defineHIGHMINE99/*高级布雷区雷的数目*/#defineGAMEOVER1/*游戏结束标识符*//*定义鼠标数据类型*/typedefstructMOUSE{intmx;/*鼠标x坐标值*/intmy;/*鼠标y坐标值*/intmkey;/*鼠标按钮状态*/charfillcolor[16][16];/*鼠标覆盖下的颜色*/
6、}Mouseh;/*定义按钮数据类型*/typedefstructBUTTON{intleft;inttop;intright;intdown;char*caption;/*按钮标题标识*/chartable[100];/*按钮目录标题标识*/intfillcolor;/*按钮面颜色标识*/intfontcolor;/*按钮面字体颜色标识*/}BUTTON;/*定义窗口数据类型*/typedefstructWINDOW{intleft;inttop;intwidth;intheight;intbackcolor;/*
7、窗体背景颜色*/char*caption;/*窗体标题*/BUTTONclose;/*窗体关闭按钮*/BUTTONgame;/*游戏按钮*/BUTTONhelp;/*帮助按钮*/BUTTONsettime;/*显示时间按钮*/BUTTONminenumber;/*显示游戏区间雷体数目按钮*/}Hwnd;/*定义布雷区数据类型*/typedefstructMINEFIELD{intleft;inttop;intright;intdown;intstatus;/*是否有雷的标识状态符*/intopenst;/*雷区是否打
8、开的标识符*/intminenumbers;/*雷区周围有多少雷的标识符*/}MINEFIELD;/*-=-=-=-=-=-=-=全局变量-=-=-=-=-=-=-=-=-*//*鼠标屏幕绘码*/charMouseMask[]={0x00,0x00,0x40,0x00,0x60,0x00,0x70,0x00,0x78,0x00,0x7c,0x0
此文档下载收益归作者所有