基于JAVA技术的俄罗斯方块游戏的设计与实现Word格式.docx
《基于JAVA技术的俄罗斯方块游戏的设计与实现Word格式.docx》由会员分享,可在线阅读,更多相关《基于JAVA技术的俄罗斯方块游戏的设计与实现Word格式.docx(37页珍藏版)》请在冰豆网上搜索。
关键词:
俄罗斯方块;
Java;
应用程序;
Swing组件
TheDesignAndImplementationOfATetrisGameBasedOnJavaTechnology
Abstract:
Tetrisisaclassicanddurablegame,andithasbeenpopularallovertheworld.Believeingithasbeenplayedmanyofpeople.andmeanwhileit’sanidealsampleforleaningobject-orientedprogramming.Itcanbeimplementedbydifferentobject-orientedprogramminglanguagesthatexistsnowadays.Thisthesisdescribestheimplementingprocessofthisgameinjavalanguage,whichisimplementedinapplicationforminsteadofappletthatembeddedinthewebpages.Theuseofswingcomponentmakestheinterfacelookmoreprofessional.Theprocessofgameprogramminginvolvesthedesignofgameframeandgameinterface,menudesign,thedefinitionofvariable,arithmaticdesignandtheimplementationofpreviewfunction.Meanwhile,othersarealsoadded,suchastheAboutdialog,statusbar,andthefunctionofgamescoressaving.Alotcanbelearnedintheprocessofprogramming,suchashowtodefinetheclassesanditsmembersandfunctions,howtobuildaprojectinJBuilder,andhowtoimplementadialogbox,andhowtoconnectdialogboxtothemainframeofusingtogether.
Keywords:
Tetris;
Java;
application;
swingcomponent
1前言
计算机游戏如同戏剧、电影一样,是一种新型的综合性艺术产品,计算机游戏软件的开发和一般的软件产品的开发有着明显的不同,计算机游戏程序设计人员不仅需要掌握程序设计的技巧和软件工程方法,还需要有坚实的专业领域知识,才能有效地生成和实现游戏的画面内容、音效处理等。
近来,Java游戏在提供个人娱乐方面变得越来越流行,这种流行给游戏出版商带来丰厚的利润。
JAVA游戏在给游戏开发者和相关人员带来无数商机的同时,也处于极为重要的枢纽位置。
据估计,到2009年,全世界的Java游戏玩家有望达到两亿两千万之多,Java游戏开发将被规划并扩展到一个更高的层次。
同时,俄罗斯方块可以说是一款非常流行且历久弥新的老游戏,风靡全球,经久不衰。
究其历史,俄罗斯方块最早还是出现在PC机上,而我国的用户都是通过红白机了解而喜欢上它的。
它之所以如此耐玩,主要在于它拥有简单的控制(只需上下左右方向键)、简单的游戏规则(有空就移,有满行就删除)及刺激的游玩过程(方块下降的速度因等级而变化)等。
俄罗斯方块这款游戏最初是由苏联的游戏制作人AlexPajitnov制作的,它看似简单但却变化无穷。
相信大多数玩家都还记得为它痴迷得茶饭不思的那个俄罗斯方块时代。
这款游戏除了好玩之外,在程序设计上也有多处值得学习的地方,如方块的旋转处理、绘图的应用及双重显示缓冲区的使用等。
整个游戏在设计上偏重逻辑的运算,其次为绘图及使用者接口的控制,在游戏设计过程中可以了解到对象的设定、绘图的技巧等。
俄罗斯方块无论从操作过程或程序设计来看,都是一款既好玩又可以在设计过程中享受成就的好游戏。
一个完整的俄罗斯方块游戏,要求带有多关卡设置、计分统计、伴有音响效果和背景音乐,可以控制游戏的开始、暂停和重玩,并具有一定的自动演示功能。
同时,还要为游戏添加其他功能,如设计About对话框,实现游戏分数的存档,为游戏添加状态栏等,并要求使用图形用户界面,界面色彩、布局要求美观,操作流畅。
主要涉及到图形用户界面的图形绘制,整个程序采用Swing图形界面,要求熟练掌握Java2图形用户界面的事件处理及部分Swing组件的使用。
在代码的编写上要考虑代码重用的思想,要深入理解抽象类和接口的作用等。
2需求分析
2.1系统开发环境
当今,运用Java语言来开发一些小游戏已经非常普遍,而一些中型游戏有时也可在网络上见到。
Java程序本身无论是在绘图、网络、多媒体等方面都提供有相当多的API链接库,甚至包括了3D领域,所以使用Java程序来设计程序可以获得相当多的资源。
而Java程序可以使用Applet来实现的属性,更使得它拥有更大的发挥空间;
另一方面,目前有许多桌面游戏,也逐渐用Java来进行开发,这也是我选择Java开发的原因。
BorlandJBuilder是一种处于市场领先地位的跨平台开发环境,支持最新的Java标准,并且缩短了开发周期。
新增的功能有从输入的EJB代码中生成EJB块,并且增强了EJB2.0设计器。
JBuilder一直以其友好的集成开发环境在业界受到广泛的赞誉,这也是JBuilder一直是广大程序员最喜爱的Java开发工具的原因之一。
JBuilder的可视化集成开发环境包括文本编辑器、工程创建工具、对象浏览器和调试器等。
用户可以在集成开发环境中创建工程和打开工程,建立、打开和编辑文件,并可以编译、运行和调试应用程序。
可以说在JBuilder中开发Java程序,快速而且高效。
2.2系统玩法及规则
游戏的玩法及规则,关系着游戏本身的刺激性及耐玩度,本游戏除了基本的控制方式及规则外,还适度地增加了一些控制及规则,以便能更好地操作游戏和增强它的耐玩度。
本游戏在控制上主要采用键盘输入的方式,相关控制键如下表1所示。
表1玩游戏时使用键盘的相关控制键
Table1Usingrelatedcontrolkeyofthekeyboardtocontrolgame
attheplaygame
按键说明
↑方块方向变化
↓方块下降
←方块左移
→方块右移
Space方块直接降落到底部
续表1
Pause游戏暂停
Esc游戏结束
如表1所列,除了一般的控制外,还新增了space(方块直接降落)等按键,这些按键都是有效加快游戏进行的控制键,其它的助记符和快捷键不再介绍。
游戏的规则如下表2所示。
表2游戏的规则
Table2Therulesofthegame
规则说明
方块移动方块会持续向下移动直到无法降落为止,使用者可按相应方向键控
—制方块向左、向右、向下移动,当按向上方向键方块会作90度的旋
—转。
移动时,预备移往的区域必须符合现在方块的方向及所占区域。
计分每次删除行数的立方乘以25再乘速度等级所得积的总和
速度等级越高速度越快
预备方块一次提示三个
如表2所示,计分方面采用线性增加的方式,这样使得游戏设计简便,再搭配3个预备方块提示,玩家更会考虑再排列方块。
2.3系统设计分析
Java为纯面向对象(Object-Oriented,OO)的程序语言,它的诸多优点在此就不作论述了。
从面向对象的观念出发,本程序可分为以下几个对象:
·
方块类型数据
程序运算逻辑
绘图
显示平台
分析对象的技巧在于它的重复利用及维护效率。
试想,若要把设计出来的程序在不同的显示平台(浏览器或手机)上执行,就要作大幅度的更动甚至重写,这样就失去了面向对象属性,所以本程序分析时将不变与易变的因素分别做成对象,如方块类型数据及程序运算逻辑就是不变的项目,而绘图及显示平台会因为环境而有所不同属于易变的项目。
方块类型虽然形状不同,但状态与行为都是相同的,如下表3所示。
利用对象的继承属性与不同形状的特点,定义一个基础方块类(SuperBrick),其他的方块类继承此类并产生派生类,然后再重新定义表示方块形状的变量数据,就可产生新的方块样式。
如果要再新增不同的方块样式,只要再派生出不同的方块类即可。
表3方块的状态和行为
Table3Thestateandbehaviorofbox
对象要素说明
状态记录方块形态的变量
行为方块作90度旋转的方法
程序中逻辑运算通常只作数值的运算及分析,如方块移动时阻碍判断、方块满行判断、删除判断、方块移动或事件响应、成绩的排序等。
绘图会因为显示平台的不同而有所不同,例如在单机与手机上的显示环境不相同,或显示效果会有所不同,例如游戏的样式作修正时,即可产生出不同的显示效果。
“可移植性高”是Java的属性之一,Java的应用涉及许多领域,如手机、PDA、单机程序及浏览器等,不同的平台对于它的设定不尽相同,若将显示平台独立为一个类,将有助于主程序的完整性及移植程序的快速性。
2.4注意事项
游戏在设计时除了将程序切割成多个对象外,在游戏的逻辑运算上应尽可能做到弹性化。
所谓弹性就是方块地图的长与宽都应该可以用参数来改变,下面就是参数定义部分代码。
publicfinalstaticintBRICK_COLS=16;
//方块的列数
publicfinalstaticintBRICK_ROWS=20;
//方块的行数
3概要设计
3.1系统介绍
俄罗斯方块是一个传统的游戏,这个游戏是考验玩家的反应灵敏度和几何图形的一种直觉,想必大家一定都玩过。
下面简单介绍我们要编写的这个游戏的功能。
游戏的主要功能如下:
当游戏程序打开时,有一个登入页面,用来反应游戏的加载情况。
游戏当然可以让玩家操纵方块来玩,这里设计用方向键和空格键来控制方块,向上键为90度旋转方块,空格键为直落方块,每种类型的方块都有各自不同的图片。
游戏能够在