javagui开发俄罗斯方块游戏学士学位论文.docx
- 文档编号:27982555
- 上传时间:2023-07-07
- 格式:DOCX
- 页数:31
- 大小:325.43KB
javagui开发俄罗斯方块游戏学士学位论文.docx
《javagui开发俄罗斯方块游戏学士学位论文.docx》由会员分享,可在线阅读,更多相关《javagui开发俄罗斯方块游戏学士学位论文.docx(31页珍藏版)》请在冰豆网上搜索。
javagui开发俄罗斯方块游戏学士学位论文
使用JAVAGUI开发
俄罗斯方块游戏
学院:
软件学院
专业:
软件工程
指导教师:
2014年9月
使用JAVAGUI开发俄罗斯方块游戏
摘要
随着通信技术的发展和电脑的普及,小游戏的开发技术越来越为人们所关注。
以J2SE为开发平台,利用Java提供强大工具,不但可以在电脑上实现静态HTML技术所无法实现的计算处理、数据存储、与服务器的通信等功能,而且能够开发各种电脑小游戏。
本文在介绍J2SE及其体系结构的基础上,以俄罗斯方块游戏为实例,描述了借助J2SE的类库开发电脑小游戏的过程。
关键词:
游戏,应用程序,永久性数据
TheUseofJAVAGUIDevelopmentofTetrisGame
Abstract
Alongwithcommunicationdevelopmentandcomputerpopularization,peoplemoreandmorepayattentiontothehandsetgamedevelopmenttechnology.DevelopstheplatformtakeJ2SE,providesthepowerfultoolusingJava,notonlymayrealizethehandsetfunctionsthatstaticHTMLtechnologybeunabletorealize,suchascomputationprocessing,datastorage,andcommunicationwithserver,butalsocandevelopallkindsofhandsetgames.OnthebasisofthetechnologyandarchitectureofJ2SEbeingintroduced,theRussiangamewastakenasaexample,thedevelopmentprocessofgamewiththeaidoftheJ2SEclasslibraryisdescribedinthisarticle.
KeyWords:
game,applicationpragram,Permanentdata
目录
1引言1
1.1研究现状1
1.2主要研究的目的及内容2
2应用需求分析与可行性分析4
2.1应用需求分析4
2.2其他需求分析5
2.4可行性分析6
2.4.1经济可行性6
2.4.2技术可行性6
2.4.3运行可行性6
2.4.4时间可行性6
2.4.5法律可行性6
2.5系统开发步骤7
3工程概况8
3.1项目名称8
3.2设计平台8
3.3程序设计思想10
3.4主要实现的功能11
4开发背景13
5游戏的实现21
5.1游戏设计的具体实现21
5.1.1游戏界面的设计实现21
5.1.2俄罗斯方块的造型22
5.1.3俄罗斯方块的旋转22
5.1.4如何实现方块的运动和自动消除满行的方块23
5.1.5游戏速度和游戏级别自由选择24
5.1.6游戏得分的计算和游戏菜单的编辑25
5.2游戏功能的介绍25
6系统测试28
6.1游戏界面菜单选项的功能测试28
6.2按键事件的功能测试28
6.3方块堆砌与消行测试29
6.4测试结果分析29
7总结30
参考文献31
致谢32
1引言
1.1研究现状
Java语言是美国SunMicrosystem的JamesGosling、PratrickNaughton及MikeSheridan等人于1991年精心设计出来的计算机编程语言,其构想在于实现使用同一种编程语言所写出来的程序可以在不同的平台上运作。
这种架构对于消费性电子产品而言是具有革命性的,因为在消费性电子产品中的处理器及操作系统各不相同,要在这些平台上开发程序必须要了解各个平台的特性,以及其提供的API使用方式,分别开发不同的版本才能执行,影响应用程序的普及性。
近几年,由于微处理器性能的大幅提升,加上无线通讯技术的突破,手持式电脑设备开始受到大众的青睐。
短短几年内,电脑已经升级了几代产品,普及率逐年攀升,生产效率不断上升,产品价格比个人电脑的摩尔定律有更惊人的下调,以至电脑是大多是城市居民不可缺少的一件随身设备。
继短信、彩信等服务之后,中国移动提供基于Java的百宝箱业务,应用产品遍及商务应用、信息获取、英汉互译、游戏娱乐等多媒体领域[1]。
为了适应移动数据的发展,推动无线电子商务等业务的发展,J2SE既用于嵌入式系统的Java被引入电脑领域。
J2SE的出现实际上是Java技术的回归。
作为Java2平台的一部分,J2SE与J2ME、J2EE一起,为应用的客户端和服务器端建立了完整的开发、部署环境[2]。
随着J2SE的应用,它为移动互联引入了一种新的模型,既允许电脑可以从互联网上下载各种应用程序,并在电脑创造可执行环境离线运行这些程序。
由于定义了可执行下载的标准,并在电脑上创立了可执行环境和程序开发语言,由此,在电脑业第一次为软件开发商创造了巨大的商业机会,电脑用户在得到丰富应用体验的同时,也大大提高了运营商的网络流量。
随着通信技术的发展和电脑的普及,电脑游戏的开发技术越来越为人们所关注。
以J2SE为开发平台,利用Java提供强大工具,不但可以在电脑上实现静态HTML技术所无法实现的计算处理、数据存储、与服务器的通信等功能,而且能够开发各种电脑游戏。
JAVA语言继承了basic语言易学易用的特点,特别适合于初学者学习windows系统编程。
随着21世纪信息社会的到来,电脑在人们的工作和生活中的深入,要求我们越来越多地与电脑打交道,为了使用户在繁忙的日程工作中得到放松,于是出现了各种各样的休闲软件[3],如聊天工具,游戏等等。
于是我们小组着手设计开始一个这样的电脑游戏软件。
通过这学期来对J2SE技术的学习,我初步掌握了JAVA语言的最基本的知识,于是在指导老师的指导下动手用J2SE编写俄罗斯方块电脑游戏。
无可争议,《俄罗斯方块》是有史以来最伟大的游戏之一。
它是永恒的娱乐经典,但它实际上又和那些传统的经典娱乐方式不同,因为它的本质是电子化的,所以它的确属于现代产物。
《俄罗斯方块》举世闻名的游戏性,在该游戏新鲜出炉时就显得非常直观。
某些与坠落的玩具碎片和它们的形状有关的东西,使得哪怕新手也会很自然地企图把它们排列起来,并加以适当组合,就好似《俄罗斯方块》触动了我们某些内在的感官,使得哪怕是我们当中最杂乱无章的人也要把事情整理妥当。
在曾经发布过的所有游戏中,《俄罗斯方块》还被认为是仅有的一个能够真正吸引广泛人群的作品。
某些批评家也许会声称,《俄罗斯方块》要比过去二十年间出现的任何东西都要浪费人们的时间。
至于我们,则要欣然提名它为GameSpot评选出的历史上最伟大游戏之一。
为了怀念经典,也为了能够给大多的计算机用户在工作之余找到一个休闲、娱乐的一个方式,我们小组开始着手用JAVA语言开发一个经典的俄罗斯方块游戏。
1.2主要研究的目的及内容
游戏作为人们日常生活的一个重要的娱乐项目,也带动了巨大的游戏相关产业市场的发展。
游戏平台从游戏机、电视游戏,到pc游戏,到电脑游戏,中间经历了很多的技术的变革。
随着新技术的发展和人们生活水平的提高,电脑开始逐渐普及,电脑以其小巧便捷,方便的特性成为人们的必备通讯工具。
而基于电脑平台的电脑游戏也就拥有了巨大的市场空间,随着3g的开通和应用,电脑游戏必将迎来新的一轮游戏热潮。
小游戏制作的目的是满足了人们休闲的需要,在紧张工作之余休闲类的小游戏能够给人带来最大程度的放松,也可以增进人们之间的交流,沟通,方便人们娱乐的目的。
另外也通过本程序将几年来所学的专业知识和其他方面的知识融入到实际应用中。
通过此次课题的设计,掌握如何制作一个俄罗斯方块游戏软件,以及制作游戏软件的整个流程,制作游戏软件的步骤,为以后的就业工作打下基础。
2应用需求分析与可行性分析
项目实现了俄罗斯方块游戏的所有基本功能,同时,为了满足玩家的个人需求,在游戏中设置了难度选择,从而使玩家根据自身水平选择合适的游戏难度;在程序中设置了当游戏窗口最小化时,游戏能够自动暂停,窗口恢复时游戏自动继续的功能以方便玩家的游戏操作;游戏按键使用最基本的键位设置,从而使操作更加简单,更容易上手,且不易失误。
力争使游戏具有可靠性,安全性,完整性,灵活性,开发出一款更加适合人们需求的俄罗斯方块游戏。
屏幕上有一个X列Y行的区域,计算机自动产生7种不同形状的方块,并出现在区域的最顶端,然后每过一个固定的时间向下落移动一格。
玩家可用上、下、左、右及空格键来控制方块的旋转和移动,以便按照玩家所需要的形态和位置落下,不过前提是方块移动和旋转后的位置必须是空的。
这7种方块可以旋转90°、180°、270°,因此每种方块有4种状态,7种方块总共有28种状态。
另外,在游戏区域产生一个新的方块的一瞬间,立即产生下一个下落方块的形状并在提示区域的左上方有预先提示。
同时,在游戏界面的右下方,将显示玩家所得的分数以及游戏的难度级别。
每当游戏玩家成功消除一行方块时,将按照一定的算法计算出所得分数,并修改游戏状态区域的分数和行数的数值。
本游戏提供了数种游戏级别,用户可根据自己的兴趣选择相应的级别[4]。
下落方块可以通过旋转改变其显示形状,并且不断地往下落,直到它接触到游戏区域底部或者其他已经垒叠起来的下落方块。
当一个下落方块到达游戏区域底部或者接触到其他已经垒叠起的下落方块后,其位置即确定下来,并占有该空间的位置区域。
如果落下时,方块的方格能填满某一行,则这一行可消去。
消去一行后,游戏可给玩家加分,垒在其上的方块将按照一定的算法落下来代替该行空间。
游戏的结束是以下落方块的顶部到达游戏区域顶部作为判断依据,若存在空格的方块填满整个窗口,则游戏失败。
系统默认设置使用右边的窗口,用光标操作:
“←”左移一格;“→”右移一格;“↑”变形;“↓”下移一格;“空格”丢下方块。
2.1应用需求分析
硬件环境:
内存:
512M,硬盘:
256M,cpu:
1.8HZ以上软件环境:
MyEclipse8.5,JDK1.6和MySQL数据库。
2.2运行需求分析
硬件条件:
酷睿CPU、1GRAM、10G硬盘以上的PC机;打印机;局域网。
软件条件:
WindowsXPIE6.0以上
2.2其他需求分析
(一)、游戏主界面功能需求
良好的用户界面,能够在视觉上吸引玩家。
为了使界面简洁美观,需要在主界面中添加背景图片来渲染游戏的气氛,同时为了便于玩家的操作,需要设置四个按钮供玩家选择,分别是“游戏”、“控制”、“风格”、“系统”。
这样的设置让用户一目了然。
玩家可以自己选择不同的背景颜色,游戏难度,和不同风格的界面。
(二)、俄罗斯游戏功能需求
游戏界面要求美观大方。
该界面由4个模块构成,分别是游戏、控制、风格和系统。
其中游戏条包括新游戏、设置前景色、设置背景色、增加难度、降低难度和退出等功能。
控制面板包括预提示面板,当前信息提示面板和游戏控制按钮面板。
在游戏中,玩家可以根据自己的需要设置游戏级别。
为了满足玩家的心理需求,还添加了排行榜的功能,方便玩家及时记录自己游戏战绩,在本游戏上获得成绩前十名,将进入游戏的英雄榜[5]。
为了进一步方便玩家的实际操作,还为部分操作添加了快捷键的功能,用户无需点击按钮或菜单项即可达到游戏目的。
(三)、俄罗斯方块的需求
良好的方块形状设计,绘制七种常见的基本图形,各个方块要能实现旋转变形、移动和显示。
方块的旋转可设为顺时针或逆时针,本游戏采用逆时针变形。
(四)、键盘处理事件的需求
方块下落时,可通过键盘方向键(上、下、左、右、空格键)对该方块进行向上(旋转变形),向下移动、向左移动、向右移动和丢下操作。
(五)、显示需求
当方块填满一行时可以消行,剩余方块向下按照一定的算法向下移动并统计分数。
当达到一定的分数时游戏升级,并显示游戏升级信息;当游戏方块填满整个屏幕时,游戏结束,并显示游戏结束信息。
本游戏共设置不同级别,方块的下落速度随着级别的升高而加快。
2.4可行性分析
2.4.1经济可行性
本游戏是为丰富人们业余生活开发的,规模适中,工作复杂性低,实用性强。
从开发人力、物力、时间上考虑,开发成本少。
而且利用了开源开发环境MyEclipse8.5,加快了开发进度,大大的缩短了开发周期,节省了人力、物力、时间,提高了项目开发的效率,降低了开发成本。
由于需求分析完整,减少了很多后期维护的复杂性。
另外,本系统具有很实用的现实意义[6]。
因此,从经济角度考虑本系统的开发在经济上是完全可行的。
2.4.2技术可行性
可用于本游戏的编程语言有Java、VC++、C#.NET等,考虑到编写程序的难易程度,和对语言的了解程度以及各种编程语言自身的特点,选择乐Java作为编程语言进行开发。
首先,作为一种程序设计语言,Java是一种简单的、面向对象的、分布式的、健壮的、安全的、结构中立的、易移植的、多线程的动态语言。
它不依赖于机器的结构,并且提供了并发的机制、具有很高的性能。
其次,它最大限度地利用了网络,Java的小应用程序可在网络上传输而不受CPU和环境的限制。
另外,Java还提供了丰富的类库,使程序设计者可以很方便地建立自己的系统。
2.4.3运行可行性
本游戏是采用java的GUI(图形用户界面)组件创建的简单有好的操作界面,运行也效果简单明了,所有功能均根据基本需求进行开发。
强调人—机—环境三者作为一个系统进行总体设计。
使操作更人性化,减轻了用户的认知负担,使其更适合用户的操作需求。
对所有数据的输入进行完整性和合法性检查[7],尽量减少误操作。
因此在操作上是可行的。
2.4.4时间可行性
从时间上看,在两个月的时间里学习相关知识,并开发JAVAGUI的俄罗斯方块游戏,时间有点紧凑但是完全可行的。
2.4.5法律可行性
本游戏的开发作为毕业课程设计以提高分析和解决实际问题的能力,以个人为单位,仅供个人平常娱乐所用,所用他人的成果部分都已注明。
所以不存在侵权的问题。
该软件是合法的,不会引起任何社会问题。
因此,从法律上考虑本系统是可行的。
2.5系统开发步骤
详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序[8]。
详细设计阶段的任务还不是具体地编写程序,而是要设计出程序的“蓝图”,以后程序员将根据这个蓝图写出实际的代码。
因此,详细设计的结果基本上决定了最终的程序代码的质量。
3工程概况
3.1项目名称
俄罗斯方块游戏
3.2设计平台
J2SE是Java2的一个组成部分,它与J2ME、J2EE并称。
根据Sun的定义:
J2SE是一种高度优化的Java运行环境,主要针对消费类电子设备的,例如蜂窝电话和可视电话、数字机顶盒、汽车导航系统等等。
J2SE技术在1999年的JavaOneDeveloperConference大会上正式推出,它将Java语言的与平台无关的特性移植到小型电子设备上,允许移动无线设备之间共享应用程序。
Java2平台包括:
标准版(J2SE)、企业版(J2EE)和微缩版(J2ME)三个版本。
J2SE,J2ME和J2EE,这也就是SunONE(OpenNetEnvironment)体系。
J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入式系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统[9]。
StandardEdition(标准版)J2SE包含那些构成Java语言核心的类。
比如:
数据库连接、接口定义、输入/输出、网络编程
EnterpriseEdition(企业版)J2EE包含J2SE中的类,并且还包含用于开发企业级应用的类。
比如:
EJB、servlet、JSP、XML、事务控制
MicroEdition(微缩版)J2ME包含J2SE中一部分类,用于消费类电子产品的软件开发。
比如:
呼机、智能卡、手机、PDA、机顶盒
简单讲就是:
J2SE:
java2Standardedition(java2标准版)
J2EE:
java2enterpriseedition(Java2企业版)
J2ME:
java2microedition(Java2微缩版)
他们的范围是:
J2SE包含于J2EE中,J2ME包含了J2SE的核心类,但新添加了一些专有类
应用场合,API的覆盖范围各不相同。
笼统的讲,可以这样理解:
J2SE是基础;压缩一点,再增加一些CLDC等方面的特性就是J2ME;扩充一点,再增加一些EJB等企业应用方面的特性就是J2EE。
补充一点J2EE更恰当的说,应该是JAVA2企业开发的技术规范,不仅仅是比标准版多了一些类。
J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。
J2SE商业版本,标准版本(Java2StandardEdition)定位在客户端,主要用于桌面应用软件的编程。
J2SE包含那些构成Java语言核心的类。
比如:
数据库连接、接口定义、输入/输出、网络编程
J2SE是J2EE的基础,他大量的JDK代码库是每个要学习J2EE的编程人员必须掌握的。
可以把Configuration当作是J2SE对于两种类型嵌入式装置的规格,而这些规格之中定义了这些装置至少要符合的运算能力、供电能力、记忆体大小等规范,同时也定了一组在这些装置上执行的Java程序所能使用的类别函式库、这些规范之中所定义的类别函式库为Java标准核心类别函式库的子集合以及与该型态装置特性相符的扩充类别函式库[10]。
比方就CLDC的规范来说,可以支援的核心类别函式库为java.lang.*、java.io.*、java.util.*,而支援的扩充类别函式库为java.microedition.io.*。
区分出两种主要的Configuration之後,J2SE接著在定义出Profile的概念。
Profile是架构在Configuration之上的规格。
之所以有Profile的概念,是为了要更明确地区分出各种嵌入式装置上Java程序该如何开发以及它们应该具有哪些功能。
因此Profile之中定义了与特定嵌入式装置非常相关的扩充类别函式库,而Java程序在各种嵌入式装置上的使用者介面该如何呈现就是定义在Profile里头。
Profile之中所定义的扩充类别函式库是根据底层Configuration内所定义的核心类别函式库所建立。
与J2ME和J2EE相比,J2SE总体的的运行环境和目标更加多样化,但其中每一种产品的用途却更为单一,而且资源限制也更加严格。
为了在达到标准化和兼容性的同时尽量满足不同方面的需求,J2SE的架构分为Configuration、Profile和OptionalPackages(可选包)。
它们的组合取舍形成了具体的运行环境。
Configuration主要是对设备纵向的分类,分类依据包括存储和处理能力,其中定义了虚拟机特性和基本的类库。
已经标准化的Configuration有-ConnectedLimitedDeviceConfiguration(CLDC)和ConnectedDeviceConfiguration(CDC)。
Profile建立在Configuration基础之上,一起构成了完整的运行环境。
它对设备横向分类,针对特定领域细分市场,内容主要包括特定用途的类库和API。
CLDC上已经标准化的Profile有MobileInformationDeviceProfile(MIDP)和InformationModuleProfile(IMP),而CDC上标准化的Profile有FoundationProfile(FP)、PersonalBasisProfile(PBP)和PersonalProfile(PP)。
可选包独立于前面两者提供附加的、模块化的和更为多样化的功能。
目前标准化的可选包包括数据库访问、多媒体、蓝牙等等。
开发JavaME程序一般不需要特别的开发工具,开发者只需要装上JavaSDK及下载免费的SunJavaWirelessToolkit就可以开始编写JavaME程式,编译及测试,此外目前主要的IDE(Eclipse及NetBeans)都支持JavaME的开发,个别的电脑开发商如Nokia及SonyEricsson都有自己的SDK,供开发者在开发出兼容于他们的平台的程序。
3.3程序设计思想
游戏作为人们日常生活的一个重要的娱乐项目,也带动了巨大的游戏相关产业市场的发展。
游戏平台从游戏机、电视游戏,到pc游戏,到电脑游戏,中间经历了很多的技术的变革。
随着新技术的发展和人们生活水平的提高,电脑开始逐渐普及,电脑以其小巧便捷,方便的特性成为人们的必备通讯工具。
而基于电脑平台的电脑游戏也就拥有了巨大的市场空间,随着3g的开通和应用,电脑游戏必将迎来新的一轮游戏热潮。
游戏是用来给大家娱乐的,所以要能在使用的过程中给大家带来快乐,消除大家的疲劳,所以我们在游戏中添加了漂亮的场景,设置了过关升级的功能,激发大家的娱乐激情。
从游戏的基本玩法出发,主要就是俄罗斯方块的形状和旋转,我们在设计中在一个图片框中构造了一个4*4的网状小块,由这些小块组合成新的形状,每四个小块连接在一起就可以构造出一种造型,因此我们总共设计了7中造型,每种造型又可以通过旋转而变化出2到4种形状,利用随机函数在一个预览窗体中提前展示形状供用户参考,然后将展示的形状复制到游戏窗体中进行摆放,在游戏窗体中用户就可以使用键盘的方向键来控制方块的运动,然后利用递归语句对每一行进行判断,如果有某行的方块是满的,则消除这行的方块,并且使上面的方块自由下落,其中,方块向下的速度是有时钟控件控制的,在游戏中,用户也可以使用向下键加快下落速度,定义一个变量,对消除的函数进行记录,最后就可以得出用户的分数,用if语句对分数判断,达到一定的积分就可以升级到下一个档次。
俄罗斯方块游戏设计的主要步骤为以下方面:
(1)游戏界面的设计。
(2)俄罗斯方块的造型。
(3)俄罗斯方块的旋转。
(4)俄罗斯方块的运动情况(包括向左,向右和向下)。
(5)俄罗斯方块的自动消行功能。
(6)游戏级别的自由选择。
(7)游戏速度的自由选择。
(8)游戏得分的计算。
(9)游戏菜单选项的设计及功能实现。
3.4主要实现的功能
我们开发的俄罗斯方块游戏,主要实现了以下几种功能:
1.可以灵活控制方块在图形框中运动。
2.游戏过程中方块可以自由旋转。
3.当某一行的方块排列满时,将自动将这一行方块消除,然后将上面所有方块向下移动,可以支持连续消行。
4.游戏前可以选择游戏的速度和游戏的等级,游戏速度既为方块下落速度,游戏等级为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- javagui 开发 俄罗斯方块 游戏 学士学位 论文