




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年农业科学研究与试验发展服务合作协议书
- 电子阅读器开发及内容资源整合方案
- 个人工程劳务协议年
- 2025年悬挂式离子风机项目合作计划书
- 农业生态技术应用示范推广协议
- 2025年杀螨隆项目合作计划书
- 高级管理职务任职证明书(7篇)
- 城市智能停车设施采购协议
- 高端职位任职资历证明书(7篇)
- 城市治理与市政发展反馈试题及答案
- 2024至2030年中国动画产业投资分析及前景预测报告
- 2025年中考历史复习专项训练:世界现代史选择题100题(原卷版)
- 四年级下册语文课外阅读题三(5篇含答案)
- 山东省济南市槐荫区2024年五年级数学第二学期期末学业水平测试试题含解析
- 五年级小数乘法练习题300道及答案
- 万达商家入驻商场合同(2024版)
- 【课件】初心与使命-时代的美术担当+课件-高中美术人美版(2019)美术鉴赏
- DLT 722-2014 变压器油中溶解气体分析和判断导则
- 北师大版五年级下册英语教案
- 铝合金薄板的热处理工艺与性能的研究
- 四川省成都市郫都区2023-2024学年数学五下期末调研试题含解析
评论
0/150
提交评论