俄罗斯方块游戏的设计-java课设-含可运行程序

上传人:我*** 文档编号:132201574 上传时间:2020-05-13 格式:DOC 页数:41 大小:237.50KB
返回 下载 相关 举报
俄罗斯方块游戏的设计-java课设-含可运行程序_第1页
第1页 / 共41页
俄罗斯方块游戏的设计-java课设-含可运行程序_第2页
第2页 / 共41页
俄罗斯方块游戏的设计-java课设-含可运行程序_第3页
第3页 / 共41页
俄罗斯方块游戏的设计-java课设-含可运行程序_第4页
第4页 / 共41页
俄罗斯方块游戏的设计-java课设-含可运行程序_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《俄罗斯方块游戏的设计-java课设-含可运行程序》由会员分享,可在线阅读,更多相关《俄罗斯方块游戏的设计-java课设-含可运行程序(41页珍藏版)》请在金锄头文库上搜索。

1、课程设计说明书 NO.42俄罗斯方块游戏的设计1. 课程设计的目的 在工作压力及其巨大的今天,游戏成了众多上班一族和学生朋友学习放松的工具,所以设计了一个俄罗斯方块的游戏程序,游戏功能齐全,随进随出,根据自己的能力设置游戏的难度系数。通过此次课程设计,巩固了所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、Eclipse等开发工具的运用,拓宽常用类库的应用。通过该教学环节与手段,把所学课程及相关知识加以融会贯通,理论与实际的结合,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。2.设计方案论证2.1设计思路本课程设计的目标是做一个俄罗斯

2、方块的游戏软件,实现界面初始化,游戏背景颜色和不同方块类型的初始化,程序正常运行,对游戏难度不同程度的设置,游戏的从新开始,正常退出和相应的数据计算功能。类似下落、转向、平移、得分累加和计数等。在设计过程中,充分的利用平时课堂所学知识。在游戏里,设置了7种不同形状的方块分别为条形、T型、田型、正反Z型、正反L型。各种类的实现,分数面板类,用来显示分数和关数。添加三个标签,并设置字体格式,定义控制面板类,新建并添加控制按钮。定义预览面板类,显示下一个。在预览框内实现随机产生不同颜色和种类的小方块。联合类,新建三个面板对象,将以上产生的三个面板添加到总的控制面板上。俄罗斯游戏方块面板类,它起的就是

3、显示屏的作用,各种方块的运行状况,都由其控制。主框架类,将显示类面板和控制类面板按边界布局添加到主类当中。从而实现游戏界面整体的融合和功能的实现。2.2设计方法俄罗斯方块的游戏设计,本质上就是用一个线程或者定时器产生重绘事件,用线程和用户输入改变游戏状态。这个游戏也不例外,启动MIDLET后,就立即生成一个重绘线程,该线程每隔100MS绘制一次屏幕。当然,重绘时有一些优化措施,并不是屏幕上所有的像素都需要重绘,而是有所选择,比如游戏画布上那些已经固定下来的下坠物(下坠物一共有7种,由4种小砖块组成,每种下坠物颜色固定为灰白色,可以上下左右旋转)就不需要重绘。游戏画布是一个COMMANDLIST

4、ENER,可以接受用户键盘命令,控制下坠物的左移,右移,下移,旋转动作。整个游戏的流程控制体现在游戏画布对象的PAINT()方法里。PAINT()根据当前的游戏状态,绘制出当时的游戏画面。对于游戏处于运行状态的画面的绘制,则需要在下坠物的当前位置,绘制下坠物。在绘制下坠物之前,判断下坠物是否还能下坠,如果能下坠的话,就让它下落一格,再进行绘制,如果下坠物已无法下坠,则判断游戏是否处于游戏结束状态,如果是处于游戏结束状态的话,则设置游戏状态为游戏结束状态。如果游戏不是处于游戏结束状态,则把下坠物固定下来,同时检查游戏画布上下坠物当前行下面的所有行,看是否需要进行行删除动作,如果需要行删除,则清除

5、游戏地图上被删行的数据,再把被删行绘制成背景色。然后初始化一个新的下坠物,绘制这个新的下坠物。根据需求分析要实现的系统功能,可以得出系统的模块图:俄罗斯方块游戏画布游戏界面游戏操作处理面板类处理初始化问 题主框架类构建画布7种游戏方块类键盘事件command控制按钮监听事件多线程处理方法模块 图1 系统模块图主程序的流程图为开始 判定是否满格绘制方块下落游戏结束是否能旋转调节难度NoYes正常下落旋转方块消除满格的行时钟等待时间超100游戏随机绘制方块YesNo固定方块绘制游戏结束界面NoYes图2 主程序流程图 得分模块的流程图为开始 设计游戏难度自动生成任意方块方块落底,变成蓝色判断是否格

6、满Showscore加分显示面板上显示分数结束调用退出程序YesNo图3 得分模块流程图2.3 设计中的成员变量和方法表1 主框架中的成员变量成员变量描述变量类型名称是否可以控制标志变量booleancontrol游戏是否结束变量 booleanGameOver是否允许改变变量 booleanturn时间计时变量Timertimer 得分变量intShowScore表2 主框架中的主要方法方法名功能paintComponent(Graphics)绘制整体游戏所需界面down(block)判断并执行下落方块full()判断一行是否为满方法Creat()创造下一个随机方块的方法trychange(

7、) 判断当前方块是否并执行改变2.4 设计中的主要类RussiaGame02 主框架类 主框架类,将显示类面板和控制类面板按边界布局添加到RussiaGame02,该类含有main方法,是程序的入口,该方法是吧所有模块联系在一起的关键,设置了此容器为边界布局,将显示面板放在中央,控制面板放在右侧,并为显示面板控制面板添加监听器。Control控制面板类是Jpanel类的子类,可以按网格布局添加控制按钮,添加边框。设置六个控制按钮。开始游戏、退出游戏、提高速度、降低速度、提高关数、降低关数。setLayout(new GridLayout(6,1,0,5)定义布局GridLayout,使按钮竖向

8、排列。show定义分数面板类用来显示分数速、度和关数。添加四个标签,并设置字体格式按网格布局添加四个标签,设置标签格式Show(),加边框。四个标签分别当前得分、当前速度、当前闯关、勇往直前。setLayout(new GridLayout(4,1); this.setBorder(c); s1.setFont(b); s3.setFont(b); s2.setFont(b); s4.setFont(b);Unit联合类 新建三个面板对象,将以上产生的三个面板添加到总的控制面板上。可构造函数,格式为setLayout(new GridLayout(3,1),按网格布局添加三个面板对象到总的控制

9、面板上,add (control);add (show);add (shownext);Main函数的代码如下public class RussiaGame02 extends JFrame implements ActionListener,ItemListener RussiaPanel p; Unit u = new Unit(); public RussiaGame02() p=new RussiaPanel(u); Container con = this.getContentPane(); con.setLayout(new BorderLayout();/设置此容器为边界布局 c

10、on.add(p,BorderLayout.CENTER);/将显示面板放在中间 con.add(u,BorderLayout.EAST);/控制面板放在右侧 this.addKeyListener(p);/为显示面板添加监听器 JOptionPane.showMessageDialog(this, 寒涛工作室欢迎进入俄罗斯方块游戏 !);/显示欢迎对话框 MenuBar myB=new MenuBar();/新建控制菜单 setMenuBar(myB); Menu m1=new Menu(游戏);/新建标题菜单 MenuItem m11=new MenuItem(新游戏,new MenuSh

11、ortcut(KeyEvent.VK_N);/新建菜单选项 m1.add(m11); MenuItem m14=new MenuItem(退出,new MenuShortcut(KeyEvent.VK_X); m1.add(m14); m1.addActionListener(this);/为菜单添加监听器 myB.add(m1); Menu m3=new Menu(帮助); m3.add(关于); myB.setHelpMenu(m3); public static void main(String args) /绘制程序界面 RussiaGame02 f = new RussiaGame0

12、2(); f.setSize(450, 600); f.show() public void itemStateChanged(ItemEvent e)/ public void actionPerformed(ActionEvent e)/菜单监听器的实现细节 if(e.getActionCommand()=退出)/如果按退出键则退出 System.exit(0); if(e.getActionCommand()=新游戏)/按新游戏键,清空显示屏幕并重置 p.uu.control.b4.setEnabled(true); p.uu.control.b5.setEnabled(true); p

13、.reset(); p.uu.control.b1.setLabel(点击继续玩);/将按开始按扭标签置换为重玩一次 if(!p.GameOver() p.clean(); p.t.suspend(); else p.clean(); p.t.resume(); 3.设计结果与分析调试程序,没有错误后开始运行,进入游戏界面模块图4 进入游戏界面图选择确定后进入游戏界面,设置了此容器为边界布局,控制面板上设置六个控制按钮。将显示面板放在中央,控制面板放在右侧。开始游戏、退出游戏、提高速度、降低速度、提高关数、降低关数。,分数模块设置字体格式按网格布局添加四个标签,设置标签格式Show(),加边框。四个标签分别当前得分、当前速度、当前闯关、勇往直前。图5 游戏界面图游戏开始前可以选择游戏的速度和关数从而设置游戏的难度,游戏开始的默认难度速度为1级,关数也为1级所得学分为0,设置的关数越高,难度就越大。游戏开始后,就不可以改变难度,只能选择暂停和退出程序。 图6 提高级别后运

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 事务文书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号