1 / 26
文档名称:

俄罗斯方块.doc

格式:doc   页数:26页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

俄罗斯方块.doc

上传人:825790901 2016/6/27 文件大小:0 KB

下载得到文件列表

俄罗斯方块.doc

文档介绍

文档介绍:系统需求分析 1) 游戏方块的预览功能当游戏运行后并在底部出现一个游戏方块时, 必须在预览界面中出现下一个方块, 这样便于玩家提前进行控制处理。因为在该游戏中共有 19 种方块,所以在方块预览区内要显示随机生成的游戏方块。 2) 游戏方块的控制功能游戏玩家可以对出现的方块进行移动处理, 分别实现左移、右移、快速下移、自由下落和行满自动消除功能的效果。 3) 更新游戏显示当在游戏中移动方块时,需要先消除先前的游戏方块,然后在新坐标位置重新绘制新方块。 4) 游戏速度设置和分数更新通过游戏分数能够实现对行数的划分,例如,可以设置消除完整的一行为 10 分。当达到一定数量后,需要给游戏者进行等级上的升级。当玩家级别升高后,方块的下落速度将加快, 从而游戏的难度就相应地提高了。 5) 系统帮助游戏玩家进入游戏系统后,通过帮助了解游戏的操作提示。一个俄罗斯方块游戏的基本功能也就上述 5 条了, 当然现实中的游戏产品更加复杂, 但其基本的功能都是大同小异的。 结构规划现在开始步入结构规划阶段。为了加深印象,我做了一个模块结构图,如图 1-3 所示。俄罗斯方块方块预览方块控制更新显示速度\分数更新系统帮助 2需求分析 游戏需求随机给出不同的形状(长条形、Z字形、反Z形、田字形、7字形、反7 形、T字型)下落填充给定的区域,若填满一条便消掉,记分,当达到一定的分数时,过关,设置六关,每关方块下落的速度不同,若在游戏中各形状填满了给定区域,为输者。游戏功能要求如下: 游戏界面需求:良好的用户界面,有关数显示和分数显示。让方块在一定的区域内运动和变形,该区域用一种颜色表明,既用一种颜色作为背景,最好设为黑色。还需用另一种颜色把黑色围起来,宽度适中,要实现美感。游戏形状(方块)需求:良好的方块形状设计,绘制七种常见的基本图形(长条形、 Z字形、反 Z形、田字形、 7字形、反 7形、 T字型),各个方块要能实现它的变形,可设为顺时针或逆时针变形,一般为逆时针。键盘处理事件:方块下落时,可通过键盘方向键(上、下、左、右键)对该方块进行向上(变形),向下(加速)、向左、向右移动。显示需求:当不同的方块填满一行时可以消行,剩余方块向下移动并统计分数。当达到一定的分数时过关。设置六关,每关方块下落的速度不同。 软硬件需求操作系统 Windows98/me/2000/XP/2003 内存容量 64MB 显卡要求 8M 声卡要求支持 DirectX 音效卡交互工具键盘/鼠标 CPU 奔腾 133 以上光驱 8倍速以上硬盘空间 400MB 显示器 VGA 以上显示器开发软件 Java 可视化编程 以上版本图1-3游戏的模块结构 接口控制本软件需求通过键盘进行操作,在 Windows 的操作系统下,利用键盘的上、下、左、右键对方块进行移动变形,要使用键盘的接口事件。 3概要设计 定义方块的数据结构对于方块在某一瞬间的位置标识,我们采用一个 4×2的小数组标识出来,即用 4 个存储单位空间存储当前下坠物的每一子块的位置,也就是说,用4个存储单位空间存储当前下坠物的每一子块的位置来对整个下坠物件的位置进行标识,而每个存储空间的大小就是一个典的坐标值(x,y), 而每个方块按照从左到右的方式进行编号,并且在编号过程中对于同一列的方块实行从上到下进行编号[2] 。 方块编号 ActiveStatus[0][0] 和ActiveStatus[0][1] 则是第 0号方块的横坐标 x和纵坐标y;ActiveStatus[2][0] 和ActiveStatus[2][1] 则是第 2号方块的横坐标 x 和纵坐标 y。 游戏设计分析有前面的功能描述可知,我先虚拟出俄罗斯方块游戏的类对象,并抽象出核心的数据属性和操作方法等,然后再作细化,最后将整个虚拟类的外壳脱掉,再移植到视图类中去,其实现如下: CRectGameView :public CView {//内部存取数据结构 int m_stateMap[MAX_ROW][MAX_COL]; //初始化操作 GameInitnal(); //游戏的初始化//用于判断数据相关状态的操作 IsLeftLimit(); //下坠物件是否可向左移动 IsRightLitmit(); // IsBottom(); //是否已经到达了底部 IsGameEnd(); //是否游戏已经结束//方块物件下坠过程中的操作 RectChange(); //下坠物件变形 RectDown(); //下坠物件正常下落 RectArrow(); //下坠物件方向移动(左,右,下加速) //状态控制操作 GameStart(); //游戏开始 GamePause(); //游