3. 需求分析与系统设计
3.1 游戏需求
随机给出不同的形状(长条形、Z字形、反Z形、田字形、7字形、反7形、T字型)下落填充给定的区域,若填满一条便消掉,记分,当达到一定的分数时,过关,设置三关,每关方块下落的速度不同,若在游戏中各形状填满了给定区域,为输者。游戏功能要求如下:
游戏界面需求:良好的用户界面,有关数显示和分数显示。让方块在一定的区域内运动和变形,该区域用一种颜色表明,既用一种颜色作为背景,最好设为黑色。还需用另一种颜色把黑色围起来,宽度适中,要实现美感。
游戏形状(方块)需求:良好的方块形状设计,绘制七种常见的基本图形(长条形、Z字形、反Z形、田字形、7字形、反7形、T字型),各个方块要能实现它的变形,可设为顺时针或逆时针变形,一般为逆时针。
键盘处理事件:方块下落时,可通过键盘方向键(上、下、左、右键)对该方块进行向上(变形),向下(加速)、向左、向右移动。
显示需求:当不同的方块填满一行时可以消行,剩余方块向下移动并统计分数。当达到一定的分数时过关。设置三关,每关方块下落的速度不同。
3.2 系统设计思想
游戏是用来给大家娱乐的,所以要能在使用的过程中给大家带来快乐,消除大家的疲劳,所以在游戏中添加了漂亮的场景和动听的音乐,设置了过关升级的功能,激发大家的娱乐激情。
从游戏的基本玩法出发,主要就是俄罗斯方块的形状和旋转,在设计中在一个图片框中构造了一个30*30(像素)的小块,由这些小块组合成新的形状,每四个小块连接在一起就可以构造出一种造型,总共设计了7中造型,每种造型又可以通过旋转而变化出2到4种形状,在游戏窗体中用户就可以使用键盘的方向键来控制方块的运动,然后对每一行进行判断,如果有某行的方块是满的,则消除这行的方块,并且使上面的方块自由下落,其中,方块向下的速度是有时钟控件控制的,在游戏中,用户也可以使用向下键加快下落速度,定义一个变量,对消除的函数进行记录,最后就可以得出用户的分数,用if 语句对分数判断,达到一定的积分就可以升级到下一个档次。
3.3 运用的控件和主要对象
在设计过程中,为了使游戏界面更加美观大方,在设计时主要用到的控件有:PictureBox控件,MenuStrip控件,Button控件,Label控件,Timer控件,winmm组件,DirectSound等等。
3.4 系统功能
我们开发的俄罗斯方块游戏,主要实现了以下几种功能描述:
可以灵活控制方块在图形框中运动;游戏过程中方块可以自由旋转;旋转方块同时变化方块颜色;在游戏过程中可以自由调整游戏速度;当某一行的方块排列满时,将自动将这一行方块消除,然后将上面所有方块向下移动,可以同时消多行;游戏的得分支持积分,并且按照公式:得分 = 5+ 10 * (同时消除的行数-1)这样,你同一时间消除的行数越多,你的得分也就越高,当游戏积分到了一定时可以自动升级,这个升级指速度升级;不同的用户对于键位有不同的要求,所以提供了配置保存的功能。这样就不需要每次游戏都重新配置;
图1 俄罗斯方块游戏功能结构图
4系统实现
4.1游戏相关判断
消行一定是发生在一个方块下落固定后的,并且一定是因为此方块而导致消行,因此只要判断该方块的高度范围内是否有消行即可。游戏结束只可能发生在当前方块成为固定以后,加入固定后的位置超出了游戏区域的高度,则游戏结束。
图2 俄罗斯方块游戏流程图 C#俄罗斯方块游戏设计实现+流程图(3):http://www.751com.cn/jisuanji/lunwen_1428.html