已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
5详细设计51模型层MODEL设计511图形的产生通过图形工厂类SHAPEFACTORY的GETSHAPESHAPELISTENERLISTENER方法随机产生方块的某种状态,这里运用了工厂设计模式,这种设计模式是为了实现高内聚低耦合而存在的,这种设计模式的通俗解释就是你想要一个产品,你需要让工厂给你生产一个,你要告诉工厂你要生产什么产品,就把你需要生产的这个产品当做参数传给工厂类的生产产品的方法,然后根据你传进来的产品,而决定工厂人生产什么产品,产生出来产品后,最后要返回您要的这个东西。7654321随机产生一个数随机数一字形Z字形反Z形7字形反7形倒T形田字型512图形的数据结构定义一个4X4方阵,共16个小格。用“0”和“1”来表示每个方格是绘制还是空白,由此可以组合出多种图形,如图所示其中图一表示为0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0其中图二表示为0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0其中图三表示为0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,0其中图四表示为0,0,0,0,0,1,0,1,0,1,1,0,0,0,1,0方块的旋转是通过绘制4个方向的方块,在不同旋转角度显示不同方向的方块来完成的。所以程序要控制方块的旋转方向,只要控制显示哪副图就可以了。本游戏是用一个三维数组INTSHAPESNEWINT;作为存储方块的数据结构来保存方块的28种状态的。513图形的移动图形类SHAPE保存了自己的位置信息,用LEFT表示图形到左边界的距离,TOP表示图形到上边界的距离,图形移动就是改变LEFT和TOP的值。向上移动TOP减1,向下移动TOP加1,向左移动LEFT减1,向右移动LEFT加1。图形的移动分为图形的自动下落以及通过按键事件实现图形的左移、右移以及加速下移。通过多线程SHAPEDRIVER类来实现图形的自动下移,由于游戏中方块的动态性,每个方块有一定的生命周期,所以选用线程来实现方块。一个方块用一个线程类对象实现,该类继承与THREAD类,当一个方块出现时也就表示一个线程对象产生并开始运行。通过对按键事件的响应,实现图形的左移、右移以及加速下移。514图形的变形通过INTTYPENEWRANDOMNEXTINTSHAPESLENGTHSHAPESETBODYSHAPESTYPESHAPESETSTATUS0实现初始图形的初始化,通过STATUSSTATUS1BODYLENGTH实现图形的变形功能。515存储和表示障碍物用一个和显示区域的面板大小相对应的二维数组保存障碍物的位置信息,如果对应的位置是障碍物,则这个数组中相应的元素就为1,否则就为0。如何把图形变成障碍物呢只要把属于图形的格子对应的位置都变成障碍物即可。代码如下PUBLICBOOLEANISMEMBERINTX,INTY,BOOLEANROTATEINTTEMPSTATUSSTATUSIFROTATETEMPSTATUSSTATUS1BODYLENGTHRETURNBODYTEMPSTATUSY4X1PUBLICVOIDACCEPTSHAPESHAPESYSTEMOUTPRINTLN“GROUNDSACCEPT“FORINTX0X0YBOOLEANFULLTRUEFORINTX0X0YFORINTX0XGLOBALWIDTHXZAWXYZAWXY1FORINTX0XGLOBALWIDTHXZAWX00DELETEFULLLINE利用循环语句从屏幕最底行依次向上对有方块的每一行进行判断,判断某一行中是否有空白,如果没有空白的话,则将当前的行号传递给DELETELINEINTLINENUM方法,由该方法实现消除当前行,并将上面的方块依次下移一行,最后再重新调用DELETEFULLLINE方法进行查找,直到所有行都检查一遍结束。52视图层VIEW设计521方块的显示通过视图层的GAMEPANEL类的PAINTGRAPHICSG方法调用SHAPE类的DRAWMEGRAPHICSG方法,从而实现方块的绘制,代码如下PUBLICVOIDDRAWMEGRAPHICSGGSETCOLORCOLORBLUEFORINTX0X4XFORINTY0Y4YIFGETFLAGBYPOINTX,YGSETCOLORNEWSHAPESHAPECOLORGFILL3DRECTLEFTXGLOBALCELL_SIZE,TOPYGLOBALCELL_SIZE,GLOBALCELL_SIZE,GLOBALCELL_SIZE,TRUE522障碍物的显示通过视图层的GAMEPANEL类的PAINTGRAPHICSG方法调用GROUND的DRAWMEGRAPHICSG方法,从而实现障碍物的绘制,代码如下PUBLICVOIDDRAWMEGRAPHICSGFORINTX0XGLOBALWIDTHXFORINTY0YGLOBALHEIGHTYIFZAWXY1GFILL3DRECTXGLOBALCELL_SIZE,YGLOBALCELL_SIZE,GLOBALCELL_SIZE,GLOBALCELL_SIZE,TRUE53控制层CONTROLLER设计控制层主要是实现图形工厂生产图形,图形按键事件的处理,方块、障碍物显示的控制,图形自动下落和障碍物生成的控制。通过控制层这个大管家最终实现此俄罗斯方块的按键事件的处理以及各种逻辑的处理。54游戏演示541游戏界面显示542开始和结束控制菜单543分数和等级查看菜单544变换方块菜单545帮助菜单5系统测试51游戏界面菜单选项的功能测试1“控制”菜单测试点击“游戏”“开始”输出游戏开始结果正常点击“游戏”“结束”输出弹出游戏结束提示框结果正常2“查看”菜单测试点击“查看”“分数”输出在游戏面板中间跳出分数显示框结果正常点击“查看”“级别”输出在游戏面板中间跳出级别显示框结果正常3“变换”菜单测试点击“变换”“改变方块”输出在游戏面板中显示随机产生的某种方块结果正常52按键事件的功能测试1方块移动测试游戏过程中,点击“左、右、下”方向键输出方块正常移动,不会移出边界结果正常2方块反转测试游戏过程中,点击向上方向键输出方块无边界和障碍物阻挡的情况下可反转结果正常53
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中医肿瘤护理科专科疾病护理|临床查房专用教学资料
- 装修设计施工监理双12宣传及营销方案
- 远离校园暴力共筑友善环境小学主题班会课件
- 节约资源的今天:小学生环保行动计划与班会主题的联动
- 职场人士沟通技巧提高指导书
- 新品推广资料寄送函5篇范文
- 探索自然奥秘:小学主题班会课件知识与乐趣的奇妙旅程
- 关于2026年产品试用样品寄送的确认函3篇范文
- 关于2026年半年销售数据分析的回复函3篇
- 心理健康周:保持阳光心态共度青春时光小学主题班会课件
- 施工现场迎检布置实施方案
- GB/T 1969-2026多孔陶瓷渗透率试验方法
- 2025年湖南省张家界市事业单位人员招聘笔试试题及答案详解
- 2026贵州省专业技术人员继续教育公需科目考试题库
- 2026年重庆市中考历史真题(原卷版+解析版)
- 2025-2026学年广东省梅州市五华县八年级下册期末数学试题 含答案
- 2026年高考陕晋青宁卷地理高考真题试题(含答案解析)
- 2026年黑龙江、吉林、辽宁、内蒙古高考物理试卷(含答案及解析)
- 2026年小学一年级数学第二学期期末考试卷及答案(共四套)
- 2026上海奉贤区区属国有企业招聘笔试参考题库及答案详解
- 2026上海市检察系统辅助文员招聘考试参考试题及答案解析
评论
0/150
提交评论