俄罗斯方块游戏的开发需求分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

俄罗斯方块游戏的开发

组长:XXX

组员:XXX XXX XXX XXX

05软件工程一班

一、课程设计的目的和意义

俄罗斯方块游戏是一个经典的小游戏,由于它简单有趣,因而得到了广泛的流行,男女老幼都适合。而俄罗斯方块游戏的设计工作复杂且富有挑战性,它包含的内容多,涉及的知识广泛,与图形界面联系较大,包括界面的显示与更新、数据收集等,在设计的过程中,必将运用到各方面的知识,这对于visualbasi语言设

计者而言,是个很好的锻炼机会。

二、系统功能设计

本系统主要设计以下几种功能

1、游戏难度选择功能

游戏难度选择界面设置在程序运行开始时,一共有九种难度供玩家选择,每选一级难度,都会相应地显示出代表该难度的图片。开始时不设置任何默认的难度,如果玩家不选难度直接按“Enter”进入,将会弹出提示框,提示其先选难度再

进入。

2、方块下落、变形功能

在整个俄罗斯方块游戏中,方块的设计是核心。这里设计了一个方块类:Square(),用来生成方块以及实现块的左移、右移、向下、变形、重画、同步显

示、初始化新块等。

3、自动升级功能

当分数累积到一定大小时,系统将自动为玩家提高难度。这里设置了每消除10行方块,就增加一级难度。当难度增加的时候,方块会相应地改变颜色,以作为

对玩家的提示。

4、游戏音乐功能

游戏开始音乐就自动播放,游戏暂停与结束时音乐相应消除。

5、获取帮助功能

这里设置了一个类,用来显示帮助,按F1键就能弹出窗口,显示游戏规则。

三、系统功能设计分析

俄罗斯方块游戏根据功能的不同,设置了如下12个类:Square,Command,

GameArea,GameSetting,GameOver,Help,ImagePanel,JieMian,MyPanel, MyTimer,PlayMidi,WinListener,每个类的描述如下:

1、Square,方块类。这个类中定义了生成方块的方法,用二维数组int[][]pattern,存放7种方块的四种状态。在构造方法中以随机的形式生成方块,同时提供了以下几种方法:reset(),leftTurn(),leftMove(),rightMove(),fallDown(),assertValid(int t,int s,int row,int col),dispBlock(int s)。分别实现方块的重画、翻转、

左移、右移、下落、同步显示等功能。

2、Command,处理控制类。这是一个实现ActionListener接口的类,主要处理点击按钮事件。类中定义了三个int型变量:button_play,button_quit,button_pause,和一个boolean型的变量:pause_resume,并赋值。在GameArea类中通过事件响应,在按钮执行方法中调用其值,使用switch语句,根据不同按钮不同的值,

来响应不同的事件。

3、GameArea,游戏界面类。GameArea继承了JFrame,是俄罗斯方块的主要游

戏界面。这个类定义了GameSetting类的gameScr对象和ImagePanel类的imagepanel对象作为游戏区域面板和控制区域面板。在游戏区域,主要是根据相应格子的设置标志来显示相应的图形图片,这样就实现了俄罗斯方块的实时显

示。

4、GameSetting,游戏画布类。这个类生成的对象将作为游戏界面的方块下落区域,画布的设置为15行10列,当中的方格边长为30,类中还定义了一个二维数组int[][]scrArr作为屏幕数组,表示每一个方格。游戏区域中每一个方格是否存在游戏方块是由该方格的值来决定的,如果该方格的值为1,则表示该方格中存在游戏方块;如果该方格中的值为0,则表示该方格中不存在游戏方块,因此二维数组用于记录游戏区域中每个小方格的值。此外,类中还定义了画方块的方法,根据不同的难度画出不同颜色的方块。单击Play按钮时,系统调用initScr()方法,初始化屏幕,将屏幕数组清零。当满足满行删除的条件时,系统调用deleteFullLine()方法,进行删行加分,而且每删除十行,难度自动增加一级,方块颜色改变,并在难度显示框中相应显示。

5、GameOver,游戏结束弹出提示框类。当游戏结束时,系统弹出提示,包括玩

家分数以及询问玩家要继续游戏还是退出。

6、Help,帮助类。在游戏界面,按F1键,弹出提示窗口,获取帮助。

7、ImagePanel,背景图片类。这个类继承了JPanel类,用来作为游戏界面中控

制区域的容器,并添加图片。

8、JieMian,主界面类。这个类继承了JPanel类,作为游戏的第一个界面,也是难度选择界面。定义了9个单选按钮,当玩家未选任何难度就按Enter时,系统会弹出一个提示框,提示玩家先选难度再进入。

9、MyPanel,重写MyPanel类,使Panel的四周留空间。

10、MyTimer,定时线程类。类中定义了一个run()方法,用sleep()函数实

现方块下落的快慢,即调节难度。

11、PlayMidi,添加音乐类。在游戏过程中添加背景音乐。

12、WinListener,关闭窗口类。

四、主要类的UML类图表示

Square

int[][]pattern

int SquareType

int SquareState

int blockState

int row,col

GameSetting scr

+void reset()

+void leftTurn()

+void leftMove()

+void rightMove()

+boolean fallDown()

boolean assertValid(int t,int s,int row,int col)

+synchronized void dispBlock(int s)

(Square类的UML类图表示)

GameSetting

int unitSize

int rowNum

int columnNum

int maxAllowRowNum

int SquareInitRo

相关文档
最新文档