单机扫雷游戏详细合编.ppt

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
<3> 单机扫雷游戏--游戏与用户的交互 鼠标单击事件的处理 鼠标左键抬起事件的处理 鼠标左右键同时按下事件的处理 鼠标左右键同时抬起事件的处理 鼠标右键按下事件的处理 鼠标右键抬起事件的处理 <3.1> 鼠标单击事件的处理 游戏中,鼠标单击是用户最多的游戏动作,可单击状态按钮开始游戏,也可单击主游戏区展开用户认定的非雷方块。 OnLButtonDown() //鼠标单击事件的处理 消息处理机制 <3.2> 鼠标左键抬起事件的处理 当鼠标左键按下后,由于不知道鼠标的抬起位置只是标识一些状态,并未对游戏进行什么处理。在鼠标左键抬起事件处理函数中,要根据鼠标左键按下事件中的标识及鼠标左键抬起的位置,对当前的游戏状态进行处理。 OnLButtonUp() //鼠标左键抬起事件的处理 <3.3> 鼠标左右键同时按下事件的处理 在游戏中鼠标左右键同时按下时,被按下方块的周围所有未被展开且未被标识的方块都被置为空的状态,以提示用户还有哪些方块需要判断展开或标识。如果周围有被置为未知状态的方块(问号方块)时,则问号方块被置为按下状态的未知按钮。而标识为棋子(雷块标识)时,方块的状态不变。 OnLRBtnDown() //鼠标左右键同时按下事件的处理 * 通信与信息工程学院 修德 博学 求实 创新 * 通信与信息工程学院 修德 博学 求实 创新 * 通信与信息工程学院 修德 博学 求实 创新 * * 单机级扫雷游戏开发 (一)设计思路 (二)详细设计 (三)测试结果 单机扫雷游戏 (一)单机扫雷游戏—设计思路 (二)单机扫雷游戏—详细设计 扫雷游戏的开发主要包括两大部分: 一个部分是布雷,该部分主要将雷随机布置在游戏区域内,以避免出现相同的雷区布置地图。 另一部分是扫雷,该部分包括判断鼠标左键点击某区域该区域是否是雷,如果是雷该如何操作,如果不是雷该如何操作,鼠标右键点击某区域时如果判断该区域是雷则加以标记,如果不是雷也加以标记,以及当鼠标双击某区域时,判断与该区域相邻的其它8个区域是否是雷并做一个标记。 (游戏与用户的交互) 详细 设计 <1> 游戏系统资源 <2>游戏功 能控制 <3>游戏与用 户的交互 <4>游戏结果 处理函数 <1> 单机扫雷游戏—游戏系统资源 菜单资源 位图资源 声音资源 初始化游戏变量 初始化游戏 绘制游戏界面 <1.1>菜单资源--主要用于游戏的控制及说明 菜单资源只有三个菜单选项:第1个菜单选项包括游戏控制的选项; 第2个菜单选项包含游戏说明的选项; 第3个菜单选项包括数据的发送或者接收。 <1.2.1> 位图资源--游戏状态按钮位图 彩色状态按钮位图 黑白色状态按钮位图 <1.2.1>位图资源--游戏状态按钮位图 正常 胜利 失败 方块的展开状态 正常 <1.2.2> 位图资源—方块的状态位图 方块彩色位图 方块黑白色位图 <1.2.2> 位图资源—方块的状态位图 初始状态 雷状态 爆炸状态 标志雷状态 错误标志雷状态 数字状态 下压状态 未知状态 下压未知状态 <1.2.3> 位图资源--数字位图 彩色数字位图 黑白色数字位图 雷的剩余数量 游戏已花费时间 <1.3> 声音资源 当游戏开始后,开始计时,IDR_WAVE_CLOCK对应的声音资源将被播放,每个一秒钟播放一次与时钟显示同步。 当游戏失败时,将播放IDR_WAVE_DEAD对应的声音资源。 当游戏胜利是将播放IDR_WAVE_VICTORY对应的声音资源 与游戏的功能相对应,所有的功能都对应这一个实现体。如:等级选择的功能对应着等级选择的实现、游戏交互的功能对应着游戏交互的实现。游戏主要的功能基本都在主游戏窗体类实现。该设计主游戏模块中实现的游戏界面的绘制、游戏初始化、用户交互、绘制游戏界面并初始化游戏。但无论是何种操作,在进行游戏之前都需要初始化游戏数据、绘制游戏界面并初始化游戏,这是实现游戏的第一步。 <1.4> 初始化游戏变量 LoadWaveSrc()函数用于载入声音资源 FreeWaveSrc()函数用于释放声音资源 SizeWindow()函数用来初始化窗体中重要部分的位置 OnInitMenu() 重载菜单初始化函数 <1.5> 初始化游戏 InitGame() 函数用于游戏的初始化 LoadBitmap()函数根据当前颜色状态为游戏 载入不同的位图资源 <1.6> 绘制游戏界面 主窗体的OnPaint()函数实现绘制游戏界面的功能,利用双缓冲的绘图方法。 双缓冲技术绘图—避免出现

您可能关注的文档

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档