1、完整版俄罗斯方块毕业课程设计报告一、系统概述1.1现状分析在个人电脑日益普及的今天,一些有趣的桌面游戏已经成为人们在使用计算机进行工作或学习之余休闲娱乐的首选,而俄罗斯方块游戏是人们最熟悉的小游戏之一,它以其趣味性强,易上手等诸多特点得到了大众的认可,因此开发此游戏软件可满足人们的一些娱乐的需求。此俄罗斯方块游戏可以为用户提供一个可在普通个人电脑上运行的,界面美观的,易于控制的俄罗斯方块游戏。1.2项目要求俄罗斯方块游戏是一款适合大众的游戏软件,它适合不同年龄的人玩。本软件要实现的功能如下:(1)游戏区:玩家可以在游戏区中堆积方块,并能够在游戏过程中随时了解得分情况。(2)游戏控制:玩家可以通
2、过游戏控制功能来选择开始新的一局游戏,暂停或退出游戏。(3) 级别设置:玩家可以根据自己的需要自行设定游戏的开始级别,级别越高,游戏的速度越快,难度越大。(4) 系统功能模块示意图如下:二、设计说明2.1游戏区模块2.2控制区模块2.3系统流程图2.4系统操作界面游戏打开界面 游戏进行中界面三、源程序编码 import javax.swing.*;import java.awt.*;import javax.swing.border.Border;import java.awt.event.*;public class ErsBlocksGame extends JFrame public f
3、inal static int alinescore = 100; public final static int everylevelscore = alinescore * 20; public final static int maxlevel = 10; public final static int initlevel = 5;private GameCanvas canvas; private ErsBlock block; private boolean playing = false; private ControlPanel ctrlPanel;private JMenuBa
4、r bar = new JMenuBar(); private JMenu mGame = new JMenu(游戏), mControl = new JMenu(控制), mhelp = new JMenu(帮助); private JMenuItem miNewGame = new JMenuItem(新游戏), milevelup = new JMenuItem(提高级数), mileveldown = new JMenuItem(降低级数), miExit = new JMenuItem(退出), miPlay = new JMenuItem(开始), miPause = new JM
5、enuItem(暂停), miResume = new JMenuItem(重新开始), miStop = new JMenuItem(停止), miCtrlBlock = new JMenuItem(方块控制键); public ErsBlocksGame(String title) super(title); setSize(315, 392); Dimension scrSize = Toolkit.getDefaultToolkit().getScreenSize(); setLocation(scrSize.width - getSize().width) / 2, (scrSize
6、.height - getSize().height) / 2);createMenu();Container container = getContentPane(); container.setLayout(new BorderLayout(6, 0);canvas = new GameCanvas(20, 12); ctrlPanel = new ControlPanel(this);container.add(canvas, BorderLayout.CENTER); container.add(ctrlPanel, BorderLayout.EAST); addWindowListe
7、ner(new WindowAdapter() public void windowClosing(WindowEvent we) stopGame(); System.exit(0); ); addComponentListener(new ComponentAdapter() public void componentResized(ComponentEvent ce) canvas.fanning(); ); show(); canvas.fanning(); private void createMenu() bar.add(mGame); bar.add(mControl); bar
8、.add(mhelp);mGame.add(miNewGame); mGame.addSeparator(); mGame.add(milevelup); mGame.addSeparator(); mGame.add(mileveldown); mGame.addSeparator(); mGame.add(miExit);mControl.add(miPlay); mControl.addSeparator(); mControl.add(miPause); mControl.addSeparator(); mControl.add(miResume); mControl.addSepar
9、ator(); mControl.add(miStop);mhelp.add(miCtrlBlock);setJMenuBar(bar); miNewGame.addActionListener(new ActionListener() public void actionPerformed(ActionEvent ae) stopGame(); reset(); setLevel(initlevel); ); mileveldown.addActionListener(new ActionListener() public void actionPerformed(ActionEvent a
10、e) int curLevel = getLevel(); if (curLevel 1) setLevel(curLevel - 1); ); milevelup.addActionListener(new ActionListener() public void actionPerformed(ActionEvent ae) int curLevel = getLevel(); if (curLevel 1) setLevel(curLevel+1); ); miExit.addActionListener(new ActionListener() public void actionPe
11、rformed(ActionEvent ae) System.exit(0); ); miPlay.addActionListener(new ActionListener() public void actionPerformed(ActionEvent ae) playGame(); ); miPause.addActionListener(new ActionListener() public void actionPerformed(ActionEvent ae) pauseGame(); ); miResume.addActionListener(new ActionListener
12、() public void actionPerformed(ActionEvent ae) resumeGame(); ); miStop.addActionListener(new ActionListener() public void actionPerformed(ActionEvent ae) stopGame(); ); miCtrlBlock.addActionListener(new ActionListener() public void actionPerformed(ActionEvent ae) reportGameMethod(); ); public void r
13、eset() ctrlPanel.reset(); canvas.reset(); public boolean isPlaying() return playing; public ErsBlock getCurBlock() return block; public GameCanvas getCanvas() return canvas; public void playGame() play(); ctrlPanel.setPlayButtonEnable(false); miPlay.setEnabled(false); ctrlPanel.requestFocus(); publi
14、c void pauseGame() if (block != null) block.pauseMove(); ctrlPanel.setPauseButtonLabel(false); miPause.setEnabled(false); miResume.setEnabled(true); public void resumeGame() if (block != null) block.resumeMove(); ctrlPanel.setPauseButtonLabel(true); miPause.setEnabled(true); miResume.setEnabled(false); ctrlPanel.request
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1