JAVA编写俄罗斯方块设计文档详细说明书

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

关于设计文档详细说明书

---------俄罗斯方块的实现

一、实现此游戏的软件,即开发环境:JCreator;

二、目的:为游戏爱好者设计的一套娱乐软件。

三、开发人员:

四、具体模块划分如下(功能简要说明):

1、

ErsBlocksGame.java:

游戏主类,继承自JFrame类,负责游戏的全局控制。

内含:

1、一个GameCanvas画布类的实例引用,

2、一个保存当前活动块(ErsBlock)实例的引用,

3、一个保存当前控制面板(ControlPanel)实例的引用

ErsBox.java:

方格类,是组成块的基本元素,用自己的颜色来表示块的外观。

2、

ControlPanel.java:

控制面板类,继承自JPanel.上边安放预显窗口、等级、得分、控制按钮主要用来控制游戏进程。

3、

ErsBlock.java:

块类,继承自线程类(Thread),由4 * 4 个方格(ErsBox)构成一个块控制块的移动、下落、变形等

4、

GameCanvas.java:

画布类,内有<行数> * <列数>个方格类实例。继承自JPanel类。ErsBlock线程类动态改变画布类的方格颜色,画布类通过检查方格颜色来体现ErsBlock块的移动情况。

五、具体模块功能的实现:

(1)、

ErsBlockGame类说明(游戏主类,继承自JFrame类,负责游戏的全局控制):

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

ErsBlockGame中用到的方法具体说明如下:

1、main() ---程序入口函数;

2、ErsBlockGame() ---构造函数,初始化窗体界面;

a、setSize() ---窗口大小

b、setLocation()--利用屏幕和主窗体的大小差值,使窗口居中;

c、createMenu()---建立并设置窗口菜单;

依次添加:

菜单栏->bar

菜单项->mGame,mControl,mWindowStyle

子菜单->

mGame->miNewGame,miSetBlockColor,miSetBackColor,miTurnHarder,miTurnEasier,miExit;

mControl->miPlay,miPause,miResume,miStop;

mWindowStyle->miAsWindows,miAsMotif,miAsMetal

依次添加各子菜单的事件监听器:

miNewGame---新游戏

a、stopGame()---先停止原来的游戏(判断ErsBlock类对象Block是否为空,如不为空,即调用它的pauseMove()方法,即stoping为ture);

b、reset() ---重新还原状态(分别调用ctrlPanel.reset()控制面板复位

和canvas.reset()画布复位);

c、setLevel() ---设置级别为初始值为5

miSetBlockColor---设置活动的方块的色(JColorChooser.showDialog选择颜色对话框)

miSetBackColor---设置画布的背景色(同上)

miTurnHarder---设置高一级的级别(getLevel()与MAX_LEVEL的比较,再调用setLevel())

miTurnEasier---设低一级的级别(getLevel()与Min_LEVEL的比较,再调用setLevel())

miExit ---退出

miPlay---开始游戏(调用playGame()=>this.play()=>this.reset()=>新建线程并启动start()=>调用Game(此类实现Runnable接口)的run()方法=>判断block是否为空,判断checkFullLine()是否有满行,判断游戏是否结束;随机产生画布类的方块类型和控制面板类的方块类型)

miPause---停止游戏(调用pauseGame())

miResume---唤醒游戏(调用resumeGame()=>判断ErsBlock类对象Block是否为空,如不为空,即调用它的resumeMove()方法,即stoping为false)

miStop---停止游戏(调用stopGame()=>判断ErsBlock类对象Block是否为空,如不为空,即调用它的stopMove()方法,即moving为false)

miAsWindows----设置为windows界面(调用this.setWindowStyle(),再调用canvas,ctrlPanel的fanning())

miAsMotif ----设置为motif界面(同上)

miAsMetal ----设置为metal界面(同上)

mguanyu ----关于对话框;

d、canvas ---创建画布类对象(调用canvas的构造函数);

e、ctrlPanel ---创建控制面板类对象(调用ctrlPanel的构造函数);

f、addWindowListener--添加窗口适配器(调用stopGame());

g、addComponentListener--添加组件适配器(调用canvas.fanning());

h、show() ---显示窗体;

i、canvas.fanning() ---根据窗口的大小,自动调整方格的尺寸;

j、以下为外部类调用的方法:

isPlaying()-----判断游戏是否还在进行;

getCurBlock()----得到当前活动的块;

getCanvas()-----得到当前画布;

getScore()------得到游戏积分;

getScoreForLevelUpdate()----得到自上次升级以来的游戏积分,升级以后,此积分清零;

levelUpdate()-----当分数累计到一定的数量时,升一次级;

reportGameOver()------报告游戏结束了;

2、内部类:Game

Methord: checkFullLine()---检查是否有全填满的行;

run() ---游戏启动之处;

isGameOver() ---判断游戏是否已经结束;

a、reportGameOver()---报告游戏结束了;

3、内部类:AboutDialog------显示关于对话框;

(2)、ErsBox类的说明:(方格类,是组成块的基本元素,用自己的颜色来表示块的外观)

ErsBox中用到的方法具体说明如下:

1、ErsBox()---方格类的构造函数,接受一个布尔值,判断是否用前景色来添丛方块

2、clone() ---Cloneable接口的抽象方法在此实现

3、setSize()---设置方格的尺寸

4、getSize()---得到此方格的尺寸

5、isColorBox()--判断是否用前景色来表现此方块

6、setColor---设置方格的颜色

相关文档
最新文档