单机扫雷游戏详细介绍_第1页
单机扫雷游戏详细介绍_第2页
单机扫雷游戏详细介绍_第3页
单机扫雷游戏详细介绍_第4页
单机扫雷游戏详细介绍_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1通信与信息工程学院修德 博学 求实 创新单机级扫雷游戏开发2通信与信息工程学院修德 博学 求实 创新(一)设计思路(二)详细设计(三)测试结果单机扫雷游戏3通信与信息工程学院修德 博学 求实 创新(一)单机扫雷游戏设计思路4通信与信息工程学院修德 博学 求实 创新(二)单机扫雷游戏详细设计扫雷游戏的开发主要包括两大部分: 一个部分是布雷,该部分主要将雷随机布置在游戏区域内,以避免出现相同的雷区布置地图。 另一部分是扫雷,该部分包括判断鼠标左键点击某区域该区域是否是雷,如果是雷该如何操作,如果不是雷该如何操作,鼠标右键点击某区域时如果判断该区域是雷则加以标记,如果不是雷也加以标记,以及当鼠标双

2、击某区域时,判断与该区域相邻的其它8个区域是否是雷并做一个标记。(游戏与用户的交互)5通信与信息工程学院修德 博学 求实 创新详细设计游戏系统资源游戏功能控制游戏与用 户的交互游戏结果处理函数6通信与信息工程学院修德 博学 求实 创新 单机扫雷游戏游戏系统资源菜单资源位图资源声音资源初始化游戏变量初始化游戏绘制游戏界面7通信与信息工程学院修德 博学 求实 创新菜单资源-主要用于游戏的控制及说明菜单资源只有三个菜单选项:第1个菜单选项包括游戏控制的选项;第2个菜单选项包含游戏说明的选项;第3个菜单选项包括数据的发送或者接收。8通信与信息工程学院修德 博学 求实 创新9通信与信息工程学院修德 博学

3、 求实 创新 位图资源-游戏状态按钮位图 彩色状态按钮位图 黑白色状态按钮位图10通信与信息工程学院修德 博学 求实 创新位图资源-游戏状态按钮位图正常胜利失败方块的展开状态正常11通信与信息工程学院修德 博学 求实 创新 位图资源方块的状态位图 方块彩色位图 方块黑白色位图12通信与信息工程学院修德 博学 求实 创新 位图资源方块的状态位图初始状态雷状态 爆炸状态 标志雷状态错误标志雷状态数字状态下压状态未知状态下压未知状态13通信与信息工程学院修德 博学 求实 创新 位图资源-数字位图 彩色数字位图 黑白色数字位图14通信与信息工程学院修德 博学 求实 创新雷的剩余数量游戏已花费时间15通

4、信与信息工程学院修德 博学 求实 创新 声音资源当游戏开始后,开始计时,IDR_WAVE_CLOCK对应的声音资源将被播放,每个一秒钟播放一次与时钟显示同步。当游戏失败时,将播放IDR_WAVE_DEAD对应的声音资源。当游戏胜利是将播放IDR_WAVE_VICTORY对应的声音资源16通信与信息工程学院修德 博学 求实 创新与游戏的功能相对应,所有的功能都对应这一个实现体。如:等级选择的功能对应着等级选择的实现、游戏交互的功能对应着游戏交互的实现。游戏主要的功能基本都在主游戏窗体类实现。该设计主游戏模块中实现的游戏界面的绘制、游戏初始化、用户交互、绘制游戏界面并初始化游戏。但无论是何种操作,

5、在进行游戏之前都需要初始化游戏数据、绘制游戏界面并初始化游戏,这是实现游戏的第一步。17通信与信息工程学院修德 博学 求实 创新 初始化游戏变量LoadWaveSrc()函数用于载入声音资源FreeWaveSrc()函数用于释放声音资源SizeWindow()函数用来初始化窗体中重要部分的位置OnInitMenu() 重载菜单初始化函数 初始化游戏InitGame() 函数用于游戏的初始化LoadBitmap()函数根据当前颜色状态为游戏 载入不同的位图资源18通信与信息工程学院修德 博学 求实 创新 绘制游戏界面主窗体的OnPaint()函数实现绘制游戏界面的功能,利用双缓冲的绘图方法。双缓

6、冲技术绘图避免出现闪烁现象19通信与信息工程学院修德 博学 求实 创新 绘制游戏界面DrawButton()函数实现了绘制状态按钮的功能。其实状态按钮并不是真正按钮,它只是一个绘有表情及3D边框的一片区域,该片区域根据当前的游戏状态代表按钮上的表情DrawNumber()函数实现绘制游戏当前剩余雷数,以及当前游戏时间的功能,它所绘制的雷数及时间随着游戏的进行不断地变化着DrawMineArea()函数实现绘制主游戏区的功能,它根据区域中各个方块的属性来绘制这些方块,20通信与信息工程学院修德 博学 求实 创新 单机扫雷游戏-游戏功能控制游戏菜单选项帮助菜单选项菜单选中状态控制函数21通信与信息

7、工程学院修德 博学 求实 创新 游戏菜单选项-开局子菜单开局子菜单用于初始化游戏,游戏的等级、特性都没有变化,只是计时清零后初始化游戏。(OnMemuStart)22通信与信息工程学院修德 博学 求实 创新用户自定义选项的实现基本也类似,只有这些参数需要用户自己输入,因此需要添加一个用户自定义游戏模块,它主要为用户提供了输入行数、雷数及雷数的功能,界面设计如图所示。 SetCustom()函数用户设置这3个值(m_uNumber,m_uWidth,m_uHeight) 游戏菜单选项等级设置菜单23通信与信息工程学院修德 博学 求实 创新24通信与信息工程学院修德 博学 求实 创新 游戏菜单选项

8、-游戏特效菜单游戏特效菜单选项,可以控制游戏的颜色、声音等OnMemuColor,OnMemuSound,OnMemuMark,25通信与信息工程学院修德 博学 求实 创新 游戏菜单选项退出菜单退出菜单选项OnMemuExit()是当用户选择这个菜单选项时,无论游戏处于什么状态都将直接结束游戏并退出程序。26通信与信息工程学院修德 博学 求实 创新 帮助菜单选项帮助菜单只有两个子菜单:一个是联机帮助OnMemuHelpUse();一个是游戏版本的说明OnMemuAbout()。27通信与信息工程学院修德 博学 求实 创新 菜单选项的选中状态控制函数等级与特效控制菜单选项都有选中状态控制函数,以

9、提示当前游戏的等级及特效应用情况。SetCheckedLevel() /设置游戏级别SetCheckedColor() /颜色菜单选项SetCheckedSound()/声音菜单选项28通信与信息工程学院修德 博学 求实 创新 单机扫雷游戏-游戏与用户的交互鼠标单击事件的处理鼠标左键抬起事件的处理鼠标左右键同时按下事件的处理鼠标左右键同时抬起事件的处理鼠标右键按下事件的处理鼠标右键抬起事件的处理29通信与信息工程学院修德 博学 求实 创新 鼠标单击事件的处理游戏中,鼠标单击是用户最多的游戏动作,可单击状态按钮开始游戏,也可单击主游戏区展开用户认定的非雷方块。OnLButtonDown() /鼠

10、标单击事件的处理 消息处理机制30通信与信息工程学院修德 博学 求实 创新 鼠标左键抬起事件的处理当鼠标左键按下后,由于不知道鼠标的抬起位置只是标识一些状态,并未对游戏进行什么处理。在鼠标左键抬起事件处理函数中,要根据鼠标左键按下事件中的标识及鼠标左键抬起的位置,对当前的游戏状态进行处理。OnLButtonUp() /鼠标左键抬起事件的处理31通信与信息工程学院修德 博学 求实 创新 鼠标左右键同时按下事件的处理在游戏中鼠标左右键同时按下时,被按下方块的周围所有未被展开且未被标识的方块都被置为空的状态,以提示用户还有哪些方块需要判断展开或标识。如果周围有被置为未知状态的方块(问号方块)时,则问

11、号方块被置为按下状态的未知按钮。而标识为棋子(雷块标识)时,方块的状态不变。OnLRBtnDown() /鼠标左右键同时按下事件的处理32通信与信息工程学院修德 博学 求实 创新鼠标左右键同时按下时的效果 鼠标同时抬起后的效果33通信与信息工程学院修德 博学 求实 创新因为在左右键同时按下事件的处理函数中,将鼠标同时按下方块周围的方块改变了状态。如果方块周围没有被展开,且游戏没有进入失败或胜利的状态,则在鼠标左右键同时抬起函数中,需要恢复这些方块的状态。如果是正常未被标识且未被展开的方块,将从空状态恢复到正常状态,未知状态的方块将从按下状态恢复到正常状态。OnLRBtnUp() /鼠标左右键同

12、时按下后鼠标抬起事件的处理鼠标左右键同时抬起事件的处理34通信与信息工程学院修德 博学 求实 创新 鼠标右键按下事件的处理单击鼠标右键可以根据当前方块的状态标注方块的下步状态。如果当前为正常状态,则右击后变成棋子状态,右击后变成正常状态。OnRButtonDown() /鼠标右键按下事件的处理 35通信与信息工程学院修德 博学 求实 创新 鼠标右键抬起事件的处理鼠标左键按下可对方块进行标识,鼠标右键抬起时需要判断当前是否所有的类块都已经正确地被标识。OnRButtonUp() /鼠标右键的抬起处理36通信与信息工程学院修德 博学 求实 创新 游戏结果处理函数在用户交互的鼠标左键抬起事件处理函数及鼠标右键抬起事件处理函数中,都调用了Victory()函数来判断当前游戏是否胜利。该函数主要根据当前游戏中所有方块的状态来判断用户是否将所有雷块都标识出来,并将所有非雷块全部展开来,判断当前的游戏是否可以转变为胜利状态. Dead() /游戏失败处理函数Victory() /游戏结果处理函数37通信与信息工程学院修德 博学 求实 创新(三)单机扫雷游戏测试结果菜单项计时器 地雷计数器状态按钮雷区38通信与信息工程学院修德 博学 求实 创新游戏的初级界面:9*9 个方块10个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论