C--课程设计-俄罗斯方块游戏1.doc

上传人:大米 文档编号:564351652 上传时间:2023-11-27 格式:DOC 页数:13 大小:1.38MB
返回 下载 相关 举报
C--课程设计-俄罗斯方块游戏1.doc_第1页
第1页 / 共13页
C--课程设计-俄罗斯方块游戏1.doc_第2页
第2页 / 共13页
C--课程设计-俄罗斯方块游戏1.doc_第3页
第3页 / 共13页
C--课程设计-俄罗斯方块游戏1.doc_第4页
第4页 / 共13页
C--课程设计-俄罗斯方块游戏1.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《C--课程设计-俄罗斯方块游戏1.doc》由会员分享,可在线阅读,更多相关《C--课程设计-俄罗斯方块游戏1.doc(13页珍藏版)》请在金锄头文库上搜索。

1、课 程 设 计 报 告 课程名称:面向对象程序设计C+ 设计题目: 俄罗斯方块游戏 专 业:计算机科学与技术 姓 名: 学 号: 指导教师: 李晓虹 2015 年 12 月 25 日目录一、需求分析31.1系统概述31.2游戏特色31.3功能需求3二、总体设计42.1系统模块42.2系统业务处理流程5三、详细设计53.1砖块预显示53.2分数统计63.3砖块移动和游戏暂停的实现73.4播放背景音乐83.5游戏设置与帮助83.6背景位图的插入93.7砖块三维化103.8俄罗斯方块双人版的实现10四、测试与结果114.1整个游戏运行界面图114.2游戏设置与帮助页面图12五、总结13一、需求分析1

2、.1系统概述俄罗斯方块玩家通过键盘控制方块的形状样式和速度,组成相连的1行或1行以上方块会自动消除,方块消除到一定数量后会得到一定的分数,玩家可以升级,从而难度加大,也就是速度加快,玩家还可以通过消除一组方块,使得到的分数翻倍等到更多的分数,造成更强的分数效果。游戏中玩家可以和其他玩家1V1对战。1.2游戏特色俄罗斯方块是基于pc休闲平台上的单机对战休闲游戏,这就要求游戏本身不能过于庞大复杂,需要考虑到单机对战的灵活性和多变性。在游戏中通过对方块速度的变,能够使玩家不仅仅通过自己消除方块来获胜,还可以等到更多的分数,因此获得胜利。俄罗斯方块游戏在传统的俄罗斯方块当中加入了新鲜的游戏元素,例如可

3、爱的方块的颜色,绚目的消除方块特效显示,在游戏本身的简单耐玩的基础上,大大丰富了游戏的观赏性和趣味性,令玩家有了完全的游戏体验,充分享受游戏带来的乐趣。1.3功能需求(1)实现双人俄罗斯方块(2)隐藏菜单栏、工具栏、状态栏(3)实现难度可以选择(4)实现下一个砖块预测功能(5)实现总分统计功能,和每步消除所得分数显示(6)实现下、左、右、旋转、暂停功能(7)实现背景音乐播放功能(8)添加游戏帮助菜单(9)实现砖块三维化(10)实现双缓冲避免屏幕闪烁(11)设置窗口大小,禁用最大化按钮,禁止鼠标拖动改变窗口大小二、总体设计2.1系统模块图2-12.2系统业务处理流程图2-2三、详细设计3.1砖块

4、预显示砖块预显示的原理就是在第一次生成砖块的时候,一次生成2个砖块。然后将第2个砖块预显示,第1个砖块掉下来。接着将预显示的砖块掉下来,新随机生成的砖块预显示。这样的话,我们用flag1标记是不是第一次产生砖块3.2分数统计这里实现了,显示每次消除所得的分数和游戏总共所得的分数。由于,我们有一个返回消除了多少行的函数removeFullLines(),所以我们将这个返回值乘以积分规则里面的值,就实现了显示每次消除所得的分数。然后游戏总分就是累加每次得到的分数值。因为砖块最多就是消除4行,所以这里用个switch()语句来实现。m_num2是一个成员变量,保存的就是removeFullLines

5、()的返回值。3.3砖块移动和游戏暂停的实现这里原本是需要响应键盘按下事件的,所以需要添加WM_KEYDOWN消息响应。然后将函数传进来的nChar,也就是你按的键盘值,和你游戏中设定的移动按键比较。从而执行相应的操作。同时这里也要熟悉一下虚拟按键码。但是由于我们添加了位图按钮,导致键盘按键事件响应不了,我们这里就重载了PreTranslateMessage函数,在这个函数里面拦截按键消息,从而响应。一键下落:这里用了一个循环,直到下落到砖块与边界或者其他砖块产生冲突才停止下落。空格暂停:暂停的原理就是关闭定时器,KillTimer(1);/关闭定时器空格继续:SetTimer(0,diffi

6、culty,NULL);/继续 恢复原来的下落速度3.4播放背景音乐添加头文件:#include /播放音乐 。然后在工程-设置-链接-对象/库模块里面添加winmm.lib然后就将已经准备好的.wav格式的音乐引入VC中。这里可以自己先去下载.mp3格式的音乐,然后用格式工厂转换一下格式,我就是这么干的。3.5游戏设置与帮助这里就是调用了一个对话框,用来做一些解释说明。实现步骤: 插入一个对话框 给对话框关联一个类 在需要弹出对话框的函数里面定义一个对话框的对象,然后DoModal().弹出模态对话框。静态文本超链接颜色和鼠标样式:由于静态文本是不能响应鼠标点击事件的,所以我们要现将静态文本

7、的ID改掉,如:IDC_STATIC_BK然后在样式中将通知勾选上。这样就可以响应鼠标点击事件了。接着就是要实现鼠标移动到超链接上面显示一个手的形状,这里我们需要载入一个手型的光标。本来是载入这个:IDC_HAND就可以了,但是当我载入它的时候,编译,提示IDC_HAND未定义。查了一下原来是版本的问题,不支持手型的。后来谷歌上找到了一个可以载入手型的方法:m_hCursor = :LoadCursor(NULL, MAKEINTRESOURCE(32649);就是用一个全局的载入光标函数来载入。光标载入好之后,添加一个鼠标移动事件的响应,当鼠标移动到指定区域,显示手型光标。3.6背景位图的插

8、入这个就是界面美化神器了,就是因为这张背景整个游戏才变得比原来的美观了几倍。第一次做的单文档,白色背景,是在是太不友好了。这个背景图片是我从4399上面截图下来的,然后用ps制作了一下,使其符合我的要求。3.7砖块三维化这里用到函数Draw3dRect()实现砖块三维化,其中需要3个参数参数:1.矩形区域; 参数2:RGB() 参数3:RGB():其中后面两个参数,由下面这两个函数返回。具体代码如下:3.8俄罗斯方块双人版的实现其实实现双人版的很简单,就是将FillRect()填充区域右移一定距离就实现了双人版的。当然,是在你将第二个游戏的代码也编写好的前提下,不然只是把左边玩家的界面再显示一

9、次,那没得意思。同理,预显示也就是这么实现的,就是调整了一下砖块显示的位置。四、测试与结果4.1整个游戏运行界面图其中Next是预显示,Point是每次固定块后所得的分数,XO用于播放/暂停背景音乐,a,b,c用于选择游戏难度。START点击开始游戏。下面还有个总分统计栏。图4-14.2游戏设置与帮助页面图图4-2五、总结这次编写双人版俄罗斯方块,主要参照了VC+实验指导书,界面主要就是插入了一个位图背景,图是从4399上面截图下来的,然后ps成自己需要的大小并转化成.bmp格式。插入后,再就是在适当的地方显示砖块和分数统计,这样一个界面就做好了。界面上的按钮,我是用位图按钮CBitmapBu

10、tton实现的,这里有个小插曲,就是4张图片的大小问题,我本来的意思是想让鼠标点击的时候就显示一张小一点的图片,从而达到按钮的效果,所以我就做了4张大小不同的位图,导致了后来的白边的产生。另外,由于添加了位图按钮导致了按键事件WM_KEYDOWN和鼠标点击事件WM_LBUTTONDOWN不能响应,我也不知道是为什么。好在MFC中消息都要经过翻译后再发送,所以我就在PreTranslateMessage实现了按键和鼠标点击事件,开始不知道pMsg-pt传送进来的是相对于桌面的坐标。另外还有一个问题就是关于CRect的问题,如:我定义了一个CRect rect(10,10,100,100);然后我

11、将rect.top, rect.left转换成CString类型,然后pDC-TextOut输出出来确是(0,0,99,99)不明白这是什么原因。总之,这次小游戏的编写,让我自己学到了不少的东西,对MFC的操作也更加熟练了。1. 基于C8051F单片机直流电动机反馈控制系统的设计与研究2. 基于单片机的嵌入式Web服务器的研究 3. MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究 4. 基于模糊控制的电阻钎焊单片机温度控制系统的研制 5. 基于MCS-51系列单片机的通用控制模块的研究 6. 基于单片机实现的供暖系统最佳启停自校正(ST

12、R)调节器7. 单片机控制的二级倒立摆系统的研究8. 基于增强型51系列单片机的TCP/IP协议栈的实现 9. 基于单片机的蓄电池自动监测系统 10. 基于32位嵌入式单片机系统的图像采集与处理技术的研究11. 基于单片机的作物营养诊断专家系统的研究 12. 基于单片机的交流伺服电机运动控制系统研究与开发 13. 基于单片机的泵管内壁硬度测试仪的研制 14. 基于单片机的自动找平控制系统研究 15. 基于C8051F040单片机的嵌入式系统开发 16. 基于单片机的液压动力系统状态监测仪开发 17. 模糊Smith智能控制方法的研究及其单片机实现 18. 一种基于单片机的轴快流CO,2激光器的

13、手持控制面板的研制 19. 基于双单片机冲床数控系统的研究 20. 基于CYGNAL单片机的在线间歇式浊度仪的研制 21. 基于单片机的喷油泵试验台控制器的研制 22. 基于单片机的软起动器的研究和设计 23. 基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究 24. 基于单片机的机电产品控制系统开发 25. 基于PIC单片机的智能手机充电器 26. 基于单片机的实时内核设计及其应用研究 27. 基于单片机的远程抄表系统的设计与研究 28. 基于单片机的烟气二氧化硫浓度检测仪的研制 29. 基于微型光谱仪的单片机系统 30. 单片机系统软件构件开发的技术研究 31. 基于单片机的液

14、体点滴速度自动检测仪的研制32. 基于单片机系统的多功能温度测量仪的研制 33. 基于PIC单片机的电能采集终端的设计和应用 34. 基于单片机的光纤光栅解调仪的研制 35. 气压式线性摩擦焊机单片机控制系统的研制 36. 基于单片机的数字磁通门传感器 37. 基于单片机的旋转变压器-数字转换器的研究 38. 基于单片机的光纤Bragg光栅解调系统的研究 39. 单片机控制的便携式多功能乳腺治疗仪的研制 40. 基于C8051F020单片机的多生理信号检测仪 41. 基于单片机的电机运动控制系统设计 42. Pico专用单片机核的可测性设计研究 43. 基于MCS-51单片机的热量计 44. 基于双单片机的智能遥测微型气象站 45. MCS-51单片机构建机器人的实践研究 46. 基于单片机的轮轨力检测 47. 基于单片机的GPS定位仪的研究与实现 48. 基于单片机的电液伺服控制系统 49. 用于单片机系统的MMC卡文件系统研制 50. 基于单片机的时控和计数系统性能优化的研究 51. 基于单片机和CPLD的粗光栅位移测量系统研究 52. 单片机控制的后备式方波UPS 53. 提升高职学生单片机应用能力的探究 54. 基于单片机控制的自动低频

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号