俄罗斯方块具体设计.doc
《俄罗斯方块具体设计.doc》由会员分享,可在线阅读,更多相关《俄罗斯方块具体设计.doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 关于设计文档详细说明书 -俄罗斯方块的实现一、实现此游戏的软件,即开发环境:JCreator;二、目 的:为游戏爱好者设计的一套娱乐软件。三、开发人员: 任广坤四、具体模块划分如下(功能简要说明):1、 ErsBlocksGame.java: 游戏主类,继承自JFrame类,负责游戏的全局控制。 内含: 1、一个GameCanvas画布类的实例引用, 2、一个保存当前活动块(ErsBlock)实例的引用, 3、一个保存当前控制面板(ControlPanel)实例的引用 ErsBox.java: 方格类,是组成块的基本元素,用自己的颜色来表示块的外观。 2、 ControlPanel.java
2、: 控制面板类,继承自JPanel.上边安放预显窗口、等级、得分、控制按钮主要用来控制游戏进程。 3、 ErsBlock.java: 块类,继承自线程类(Thread),由 4 * 4 个方格(ErsBox)构成一个块控制块的移动、下落、变形等 4、 GameCanvas.java: 画布类,内有 * 个方格类实例。继承自JPanel类。ErsBlock线程类动态改变画布类的方格颜色,画布类通过检查方格颜色来体现ErsBlock块的移动情况。 五、具体模块功能的实现:(1)、 ErsBlockGame类说明(游戏主类,继承自JFrame类,负责游戏的全局控制): import java.awt
3、.*; 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,miSetBack
4、Color,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(
5、)画布复位); c、setLevel() -设置级别为初始值为5 miSetBlockColor-设置活动的方块的色(JColorChooser.showDialog选择颜色对话框) miSetBackColor-设置画布的背景色(同上) miTurnHarder-设置高一级的级别(getLevel()与MAX_LEVEL的比较,再调用setLevel() miTurnEasier-设低一级的级别(getLevel()与Min_LEVEL的比较,再调用setLevel() miExit -退出 miPlay-开始游戏(调用playGame()=this.play()=this.reset()=
6、新建线程并启动start()=调用Game(此类实现Runnable接口)的run()方法=判断block是否为空,判断checkFullLine()是否有满行,判断游戏是否结束;随机产生画布类的方块类型和控制面板类的方块类型) miPause-停止游戏(调用pauseGame() miResume-唤醒游戏(调用resumeGame()=判断ErsBlock类对象Block是否为空,如不为空,即调用它的resumeMove()方法,即stoping为false) miStop-停止游戏(调用stopGame()=判断ErsBlock类对象Block是否为空,如不为空,即调用它的stopMov
7、e()方法,即moving为false) miAsWindows-设置为windows界面(调用this.setWindowStyle(),再调用canvas,ctrlPanel的fanning() miAsMotif -设置为motif界面(同上) miAsMetal -设置为metal界面(同上) mguanyu -关于对话框; d、canvas -创建画布类对象(调用canvas的构造函数); e、ctrlPanel -创建控制面板类对象(调用ctrlPanel的构造函数); f、addWindowListener-添加窗口适配器(调用stopGame(); g、addComponent
8、Listener-添加组件适配器(调用canvas.fanning(); h、show() -显示窗体; i、canvas.fanning() -根据窗口的大小,自动调整方格的尺寸; j、以下为外部类调用的方法: isPlaying()-判断游戏是否还在进行; getCurBlock()-得到当前活动的块; getCanvas()-得到当前画布; getScore()-得到游戏积分; getScoreForLevelUpdate()-得到自上次升级以来的游戏积分,升级以后,此积分清零; levelUpdate()-当分数累计到一定的数量时,升一次级; reportGameOver()-报告游戏
9、结束了; 2、内部类:Game Methord: checkFullLine()-检查是否有全填满的行; run() -游戏启动之处; isGameOver() -判断游戏是否已经结束; a、reportGameOver()-报告游戏结束了; 3、内部类:AboutDialog-显示关于对话框; (2)、ErsBox类的说明:(方格类,是组成块的基本元素,用自己的颜色来表示块的外观) ErsBox中用到的方法具体说明如下: 1、ErsBox()-方格类的构造函数,接受一个布尔值,判断是否用前景色来添丛方块 2、clone() -Cloneable接口的抽象方法在此实现 3、setSize()-
10、设置方格的尺寸 4、getSize()-得到此方格的尺寸 5、isColorBox()-判断是否用前景色来表现此方块 6、setColor-设置方格的颜色(3)、ControlPanel类: import javaz.swing.*;import javax.swing.border.Border;import javax.swing.border.EtchedBorder;import java.awt.*;import java.awt.event.*;包含的参数:private JTextField tfLevel = new JTextField( + ErsBlocksGame.DE
11、FAULT_LEVEL),tfScore = new JTextField(0);定义两个文本域分别用来显示游戏级别和得分。private JButton btPlay = new JButton(Play), btPause = new JButton(Pause),btStop = new JButton(Stop), btTurnLevelUp = new JButton(Turn hard),btTurnLevelDown = new JButton(Turn easy);定义五个按钮private JPanel plTip = new JPanel(new BorderLayout(
12、);定义预制窗口面版()private TipPanel plTipBlock = new TipPanel(); 定义预制窗口类的一个实例private JPanel plInfo = new JPanel(new GridLayout(4, 1);定义游戏级别和得分的面版(4行1列)private JPanel plButton = new JPanel(new GridLayout(5, 1);定义按钮面版(5行1列)private Timer timer;定义Timer类的一个对象。private ErsBlocksGame game;定义ErsBlocksGame类的一个实例。pri
13、vate Border border = new EtchedBorder(EtchedBorder.RAISED, Color.white, new Color(148, 145, 140);定义面版的边框。包含的方法:A、ControlPanel:类的构造函数继承面版类(布局方式为网格布局3行1列)用来摆放:按钮(btPlay、btPause、btStop、btTurnLevelUp、btTurnLevelDown)、文本域(tfLevel、 tfScore)、预显框(border)及按钮的监听事件。按钮的监听事件包括: addKeyListener(new ControlKeyListe
14、ner():调用内部类ontrolKeyListener btPlay.addActionListener:btPlay按钮的监听事件,调用ErsBlocksGame类的playGame方法。开始一个游戏。 btPause.addActionListener:btPause按钮的监听事件,调用ErsBlocksGame类的pauseGame方法。通过判断按钮的文字实现游戏暂停和游戏继续。 btStop.addActionListener:btStop按钮的监听事件,调用ErsBlocksGame类的stopGame方法 btTurnLevelUp.addActionListener:提高级别按
15、钮的监听事件,通过tfLevel文本域显示的级别与ErsBlocksGame类的变量MAX_LEVEL比较,小于则加1 btTurnLevelDown.addActionListener:降低级别按钮的监听事件,通过tfLevel文本域显示的级别判断level是否大于1,大于1则减1。 addComponentListener(new ComponentAdapter():组建监听事件。当预显窗口改变大小时调用TipPanel类的fanning()方法。 初始化timer:B、setTipStyle(int style):设置预显窗口中方块的样式,对应ErsBlock类的STYLES中的28个
16、值。调用TipPanel类的setStyle(style)方法。将style参数传递给setStyle.C、unsetTipStyle():清空预制面版。调用TipPanel类的unsetStyle()方法。D、getLevel():取得用户设置的游戏等级(level)。返回level得值。(被主函数调用)E、setLevel(int level):让用户修改游戏难度等级。(被主函数调用)F、setPalyNuttonEnable(boolean enable):设置开始按钮的状态。Ture为可用 ,False为不可用。G、setPauseButtonLable(boolean pause):
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 俄罗斯方块 具体 设计
限制150内