2022年用VC++实现俄罗斯方块的程序设计.pdf
-
资源ID:14798143
资源大小:390.31KB
全文页数:8页
- 资源格式: PDF
下载积分:4.3金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
2022年用VC++实现俄罗斯方块的程序设计.pdf
课 程 设 计课程名称:程 序 设 计课题名称:俄罗斯方块游戏的设计班级:计算机学院 09-1BJ班完成人:曾灵芝()指导教师:甘靖湖南理工学院计算机学院2011 年 4 月 14 日精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 8 页 - - - - - - - - - - 用 VC+ 实现俄罗斯方块的程序设计一、课程设计的目的与要求课程设计的目的综合运用所学知识,熟练掌握VC+程序设计的编码与MFC框架结构。课程设计的要求要求用设计与实现俄罗斯方块游戏。要求包括系统的需求分析;系统总框图及每个模块的设计分析; MFC 应用程序架构;框架的扩展;算法的设计与实现;游戏的内部实现;游戏区域绘图的实现;系统存在的问题及错误处理;列出所有定义的函数及说明;附上程序源代码。二、设计正文需求分析2.1.1 游戏需求随机给出不同的形状(长条形、Z 字形、反Z形、田字形、7 字形、反7 形、 T 字型)下落填充给定的区域,若填满一条便消掉,记分,当达到一定的分数时,过关,设置六关,每关方块下落的速度不同,若在游戏中各形状填满了给定区域,为输者。游戏功能要求如下:2.2.2 游戏界面需求 :良好的用户界面,有关数显示和分数显示。让方块在一定的区域内运动和变形,该区域用一种颜色表明 ,既用一种颜色作为背景,最好设为黑色。还需用另一种颜色把黑色围起来,宽度适中,要实现美感。2.1.3 游戏形状 (方块 )需求 :良好的方块形状设计,绘制七种常见的基本图形(长条形、Z字形、反 Z 形、田字形、 7 字形、反7 形、 T 字型),各个方块要能实现它的变形,可设为顺时针或逆时针变形,一般为逆时针。算法分析2.2.1 程序流程图精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 8 页 - - - - - - - - - - 到 达 底 部到达底部 ,游戏结束到 达 底 部结束销行操作生成下一个下坠物将新生的下坠物代替旧的“ 下一个下坠物 “将旧的 “ 下一个下坠物” 用作当前下坠物销行操作游戏结束处理下降一个单位开始精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 8 页 - - - - - - - - - - 图 2.2.3 程序运行调用图2.2.2 定义方块的数据结构对于方块在某一瞬间的位置标识,我们采用一个42 的小数组标识出来,即用 4 个存储单位空间存储当前下坠物的每一子块的位置,也就是说,用4 个存储单位空间存储当前下坠物的每一子块的位置来对整个下坠物件的位置进行标识,而每个存储空间的大小就是一个典的坐标值(x,y),而每个方块按照从左到右的方式进行编号,并且在编号过程中对于同一列的方块实行从上到下进行编号2 。图 方块编号ActiveStatus00 和 ActiveStatus01 则是第 0 号方块的横坐标x 和纵坐标y ;ActiveStatus20和 ActiveStatus21 则是第 2 号方块的横坐标x 和纵坐标 y。2.2.3 游戏设计分析有前面的功能描述可知,我先虚拟出俄罗斯方块游戏的类对象,并抽象出核心的数据属性和操作方法等,然后再作细化,最后将整个虚拟类的外壳脱掉,再移植到视图类中去,其实现如下:CRectGameView : public CView刷新游戏结束重新游戏下一个图行达到指定位置达到指定位置显示屏幕信息按向上键游戏开始否按键()()()()()()()()()()()() ()0123(x0,y0)(x1,y1)(x2,y2)(x ,y )2301(x0,y0)(x1,y1)(x2,y2)(x ,y )精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 8 页 - - - - - - - - - - 3.2.13.2.13.2.2是否7654321随机抽取一个数随机数一字形Z 字形反 Z 形7 字形反 7 形倒 T 形田字型游戏是否结束保存当前方块坐标显示方块于屏幕上游戏结束调 GameEnd()关数初始化返回开始界面精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 8 页 - - - - - - - - - - 3.2.23.2.34.5.14.5.1.顶级对游戏快慢难度的设定方块图案样式选择深蓝 .条纹对下坠物的小方块图案样式选择游戏区域大小选择小、中、大对游戏区域的行列数选择网格的选用有、无是否需要在游戏区域绘制网格背景音乐的选用有、无在游戏过程中是否播放背景音乐先将这些目标功能通过资源编辑器在主菜单条进行添加,将前面已有的菜单选项补全,再通过ClassWizard 添加对应的响应处理函数。其最终效果如图是否堆积方块,判断接触面状态及是否得分2.统计分数判断是否过关关数增加,游戏速度将变快。调用游戏初始化GameStart() 开 始新的一关视图重绘( InvalidateView() )1.判断行满、处理销行、堆积方块向下移动精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 8 页 - - - - - - - - - - 1图 4. 游戏设置游戏是用来给大家娱乐的,所以要能在使用的过程中给大家带来快乐,消除大家的疲劳,所以我在游戏中添加了漂亮的场景和动听的背景音乐,设置了个性化的工具栏快捷键,激发大家的娱乐激情。游戏演示游戏主界面如图所示。图 4. 俄罗斯方块游戏运行主界面主程序源程序清单CSkyblue_RectView:CSkyblue_RectView()断游戏是否已结束: 碰了底,且第1 行有小方块if (m_isBottom)for (i=0;im_iCol;i+)if (GameStatus0i)KillTimer(1);精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 8 页 - - - - - - - - - - AfxMessageBox(游戏已结束! );for (j=0;jm_iRow;j+)for (k=0;km_iCol;k+)GameStatusjk=0;Invalidate(FALSE);m_bGameEnd = TRUE;break;else 游戏软件设计与开发指南M. 北京:人民邮电出版社,462 钦科技 . Visual C+游戏设计 M. 北京:科海电子出版社,2113 坂本千寻 .Visual C+专业游戏程序设计M. 北京:中国铁道出版社,2004精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 8 页 - - - - - - - - - -