欢迎来到天天文库
浏览记录
ID:5395239
大小:508.50 KB
页数:25页
时间:2017-11-09
《第6章 俄罗斯方块游戏的开发》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VC++程序设计项目实践贾振华第6章俄罗斯方块游戏的开发学习目标:1.MFC类之间关系的基本概念2.进行图形的绘制的具体应用3.如果进行图形重绘4.如何响应键盘消息6.1基础知识6.1.1Windows程序工作原理图6-1Windows程序工作原理6.1基础知识6.1.2程序结构剖析图6-2MFC类关系图为了对MFC方式的程序的框架有一个总体的认识,用MFCAppWizard(exe)新建一个名为MyTest的单文档工程。该工程主要由4个类组成,各类之间的关系如图6-2所示。6.2系统分析俄罗斯方块的游戏规则是:在游戏界面中,不停的有
2、游戏方块从窗口上方往下落。游戏者需要根据游戏方块的形状,操作控制键对方块进行移动、旋转,尽可能将一层铺满。当一层被铺满后,该层会消失,否则层会迭高。当层数迭高到不能落下游戏方块后,该游戏结束。6.3系统设计为实现本实例的功能,主要完成如下几方面:(1)设计几种方块形状。对于用4个小方块组成的方块组合,不考虑自身旋转变化的话,总共有7种,分别为L型,T型,一型,N型,田型,J型以及倒N型。方块的这几种不同形状,可以使用产生随机数的办法随机抽取一种。坐标系采用左上角为坐标系中心,横轴向右,纵轴向下。6.3系统设计(2)初始化显示和屏幕刷新
3、时重绘游戏面板及方块。方块由4*4的共16个单元格组成,同时游戏面板由10*20的单元格组成。单元格初始标记为0,即不显示,如果是1则以分配的颜色显示。这样整个10*20个单元格就可以通过颜色来表示彩色方块或黑色背景了。6.3系统设计(3)使方块定时下落。这可以通过定时器来控制。(4)响应按键消息,包括让方块向左、右、下方向落下,及旋转。可以通过坐标值加1或减1个单元格来实现。(5)判断方块是否出界。主要是通过判断坐标是否小于或大于边界范围,即超出0~9和0~19个单元格。(6)判断游戏结束。及新产生的方块已经落到之前的方块上,不能在
4、下降,此时即弹出提示框显示游戏结束和分数。为了达到以上的目的,设置成员变量如表6-1所示。6.3系统设计变量类型变量名称访问权限功能intflagprivateflag=1时游戏开始,方块开始下落intflag2private图形是够重绘Intleftprivate面板左端起始位置Inttopprivate面板上端起始位置intindexprivate随机产生方块intcor[20][10]private保存方块颜色CPointdd[4];private方块位置intHprivate方块产生时的纵向起始位置intRprivate方块产
5、生时的横向起始位置inttimeprivate定时器时长intcountprivate得分intwprivate出左右边界intkprivate旋转intKprivate避免自动下落和键盘控制冲突表6-1成员变量6.3系统设计表6-2成员函数函数类型函数声明访问权限功能voidBlockCreateprivate初始化产生7种方块形状voidBlockDisplayprivate初始显示及重绘游戏面板voidBlockDropprivate方块自动下落intMoveToRotate(intas)private方块旋转intMoveTo
6、Down()private方块向下移动voidMoveToLeft()private方块向左移动voidMoveToRight()private方块向右移动voidGameOver()private游戏结束intIsOutPanel(intw);private方块出界intArriveAtBottomprivate方块到底6.4系统实现6.4.1新建工程创建Singledocument。编译、执行,测试刚创建的新工程是否工作正常。6.4系统实现6.4.2设计七种方块形状总共有7种,分别为L型,T型,一型,N型,田型,J型以及倒N型。方
7、块的这几种不同形状,可以使用产生随机数的办法随机抽取一种。坐标系采用左上角为坐标系中心,横轴向右,纵轴向下。6.4系统实现6.4.3显示方块根据方块形状初始将cor[x][y]==1,即是方块形状的位置,在游戏面板上以初始方块颜色重绘显示重绘正在下降和左右移动的方块,产生方块显示方块6.4系统实现6.4.4显示游戏面板擦除之前画的方块,即以黑色覆盖轨迹是方块形状的位置则将cor[x][j]==1,用于以后的方块局部重绘根据方块形状初始将cor[x][y]==1,即是方块形状的位置,在游戏面板上以初始方块颜色重绘显示重绘正在下降和左右移
8、动的方块,避免擦除轨迹时闪屏造成方块运动不连续在游戏面板右部空白处提示显示下一个新产生的方块6.4系统实现6.4.4显示游戏面板根据方块形状初始将cor[x][y]==1,即是方块形状的位置,在游戏面板上以初始方块颜色重
此文档下载收益归作者所有