java超级玛丽游戏计算机毕业设计论文管理资料.docx
- 文档编号:4732087
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:47
- 大小:1.50MB
java超级玛丽游戏计算机毕业设计论文管理资料.docx
《java超级玛丽游戏计算机毕业设计论文管理资料.docx》由会员分享,可在线阅读,更多相关《java超级玛丽游戏计算机毕业设计论文管理资料.docx(47页珍藏版)》请在冰豆网上搜索。
java超级玛丽游戏计算机毕业设计论文管理资料
基于JAVA的超级玛丽设计与实现
摘要
随着计算机技术及网络技术的不断发展,电子游戏越来越普及。
经典游戏“超级玛丽”因其本身所具有的娱乐性与教育意义而被人们广泛接受,在广大的青少年玩家中享有极高的知名度。
Java语言作为一种完全面向对象的程序设计语言,在游戏设计方面具有独特优势。
Java语言由C++语言发展而来,但比C++语言简单。
它具有简单、与平台无关、高效、安全、多线程等特点,在游戏设计开发方面得到广泛应用。
本课题在大学生自主创业的大背景下,利用Java语言重新设计开发了“超级玛丽”游戏,基本实现了旧版游戏的所有功能。
目前该版本游戏已经发布在学校的公共论坛上,已被许多同学下载并试玩,反响较好,但是仍暴露了一些问题,如人物形象设计过于单调等,这些问题的优化将会在下一个版本中得到实现。
本文在对整个游戏的各种需求及可行性分析的基础上,详细论述了游戏的设计过程与实现方案。
论文包括绪论、相关技术研究、可行性分析、系统设计与实现以及结论等部分内容。
关键词:
Java;超级玛丽;C++
DesignandImplementationofaJava-basedSuperMarioGame
Abstract
Withthedevelopmentofcomputerandnetworktechnology,videogameshavebecomemoreandmorepopular.SuperMarioasaclassicalgame,whichenjoyshighpopularityinthemajorityofjuvenilegameplayerswaswidelyacceptedduetoitsentertainmentandeducationalsignificance.Javalanguageasaprogramminglanguagethatiscompletelyobjectoriented,hasanuniqueadvantageingamedesign.JavalanguagedevelopedfromC++languageismuchmoresimplethanC++language.Itsadvantagessuchassimplicity,platformindependence,efficiency,securityandmultithreadingetc,hasbeenwidelyusedintheaspectsofgamedesign.ThistopicwhichisinthecontextofCollegeStudents'entrepreneurship,useJavalanguagetodesignanddevelopthe"superMario"gameagainthatbasicallyachievethefeaturesoftheoldversionofthegame.Thecurrentversionofthegamebeingreleasedintheschoolpublicforumhavebeendownloadedandplayedbymanystudents.Althoughtheevaluationofthegamewasgood,therearestillsomeproblems,suchasthecharacterimageistoomonotonous.Optimizationofalltheseproblemswillbeimplementedinthenextversion.
Basedonthedemandandfeasibilityanalysisofthewholegame,thegamedesignprocessandimplementationplanwerediscussedindetail.Thethesisincludesintroduction,relatedtechnologyresearch,feasibilityanalysis,systemdesignandimplementationaswellastheconclusionpart.
Keywords:
Java;SuperMario;C++
1绪论
课题研究背景
《超级玛丽》全名为《超级马里奥兄弟》,是由任天堂公司出品的著名横版过关游戏。
1981年,任天堂员工宫本茂设计的意大利水管工形象在游戏《大金刚》中初次亮相,随后在全世界广泛流行,之后陆续推出的数十款游戏累计总销量超过了一亿七千万份,超级玛丽成为了任天堂公司的招牌人物并为任天堂创造了高达70亿美圆的巨额商业利润。
目前,超级玛丽形象已深入人心,其知名度与商业价值可与美国迪士尼的米老鼠相媲美,为全世界的青少年玩家们带来了无限的欢乐与梦想。
自2010年5月国家教育部成功召开“全国推进高等学校创新创业教育和大学生自主创业工作”视频会议[1],大学生自主创业得到广泛支持与推广,为响应国家政策,大学生应积极利用所学来自主创业,基于经典游戏“超极玛丽”本身具有的巨大影响力和商业价值,以自主创业,锻炼能力为目的,利用Java语言重新设计编写“超级玛丽”,并将游戏推广,在为广大青少年游戏爱好者带来欢乐的同时,减轻家庭的负担,实现自己的创业梦想。
课题研究意义
随着电脑和手机的普及,超级玛丽游戏被世界广大的青少年游戏玩家所接受,游戏人物本身的教育作用,益智作用和商业价值得到推广。
超级玛丽游戏人物的不畏艰险,百折不挠的奋斗精神不断鼓舞着每一代的游戏玩家,充分发挥了电子游戏积极有益的一面,从正面去引导儿童和青少年对人生的态度,同时,也逐渐改变家长对游戏的片面看法,为电子游戏的发展起到推动作用;据日本新闻网报道,德国马克斯普朗克进化人类研究所发布的一项研究报告称,超级玛丽游戏可以促使人类大脑的某些部位更为发达。
这一研究成果可能对今后的阿尔兹海默氏症,脑部某些部位萎缩等精神症状的治疗有所帮助;马里奥的金字招牌帮助任天堂连续五年蝉联日本年末圣诞商战冠军的宝座,充分证明其具有的左右业界局势的市场号召力[2],除了游戏本身具有很好的教育意义外,利用Java设计研发“超级玛丽”的过程也具有重大的意义。
总的概括有如下三点:
(1)在个人知识拓展方面。
通过参与本次课题的设计,进一步巩固所学的Java语言编程技术。
通过软件的开发,我巩固了Java语言等相关专业知识,并且设计过程中查阅大量的资料,进一步丰富了自己的知识,拓展了自己的视野。
通过软件的调试,初步掌握了部分调试的方法,并且调试能够按照软件工程的要求进行规范化测试。
(2)在个人能力提升方面。
实践出真知,针对自己以往学习往往只注重书本理论知识而忽视了动手实践的诟病,希望通过参与该课题,能够提高自己的程序设计水平、编程水平和动手调试水平,成功完成将个人知识升华为能力的过程。
(3)在课题借鉴意义方面。
利用Java语言重新设计编写经典游戏“超级玛丽”,可以研究与探讨游戏开发过程中主要技术问题,并且增加人们对Java技术在桌游戏开发方面的认识,同时也对其他经典游戏的重新编写设计具有重要的借鉴意义。
课题研究内容
分析研究了Java语言的特点及其实用性,并对游戏编写进行了可行性分析,确定了其市场需求性,在此基础上,重新设计开发了超级玛丽游戏,阐述了游戏的总体设计、详细设计以及相关的关键技术,并对课题进行总结,得出相应结论和对今后的研究方向的展望。
论文的结构如下:
第一章:
介绍本课题的研究背景、研究意义,以及本文主要内容和结构安排;
第二章:
针对课题的实际情况,对设计开发过程中所用的相关技术做了大致的介绍;
第三章:
在现有技术和条件的前提下,对课题开展的可行性分析并得出相关结论;
第四章:
详细地分析了系统具体的实现过程,包括开发工作、游戏素材管理、游戏场景布置、游戏用例图、游戏状态图、游戏时序图以及游戏类图;
第五章:
将新设计开发的Java版本超级玛丽运行测试,检查游戏设计是否完善,并在运行过程中截图做相应的程序说明;
结论:
总结本文所做工作,并对后续的工作和研究方向做了展望。
2可行性分析
经济可行性分析
目前市场上基于Java的超级玛丽游戏相对较少,因此,相对市场竞争就相对小得多。
设计开发整个游戏所需支出部分为寝室的电力消耗和设计人员的时间,完全可以承受。
试营业单位可以优先选择学校的论坛或者公共主页对其进行宣传试用并可获得相应的修改意见,线上的宣传和后期的调整调整工作完全可以个人独立完成,极大地节约了经济费用。
低成本、高效率、响应时间短将会成为本游戏立足于长期发展的支柱,很快会实现盈利的状态。
此外,还可以借助其他的营销模式开展以此游戏为基础的一系列的营销活动,将其做大做好。
综上所述,此次设计研发的Java超级玛丽具有市场前景好,成本低,收益快的优势,在经济上是可行的。
技术可行性分析
重新设计的Java版本的超级玛丽可以完成基本的前进、后退、跳跃、顶金币、吃蘑菇并变大,发子弹打怪物等功能 。
所建议的系统是基于Android手机系统的平台,结合java技术而建立的信息搜索平台[4]。
图形的处理更加逼真,马里奥主人公的形象有大的改观,游戏的关卡会更加复杂;掌上操作,随处都可以玩,有利于提高系统的效率;能实现数据交互,能够给广大游戏爱好者带来较多便利,打发无聊的时间。
Eclipse作为Java程序的开发工具,是一个开源软件,插件比较多,大多数企业用它来做开发,是目前最流行的Java开发工具。
它集成有比较多而且比较容易使用的类,在新建类的时候也方便继承其他类[22]。
而且Eclipse具有极为高效的GUI、先进的代码编辑器等,其项目包括许多各种各样的子项目组,包括Eclipse插件、功能部件等。
任何人都能够轻易的将自己的软件做成Eclipse的插件,而且这些插件只需简单的复制到Eclipse的插件文件夹下就可以被集成。
主要采用Swing界面库,支持多种本机界面风格。
另外很重要的一点是,Eclipse具有多种数据库支持[23,24]。
系统性能需求分析
一个系统的好坏与它的性能直接相关,对一个系统进行性能需求分析是在系统设计中是必不可少的一个阶段。
所谓系统性能需求分析就是对系统需求中的各项性能指标进行分析,分析每项性能指标是否达到系统的要求,以提供一个稳定的,可靠的实用系统。
对于基于Java的超级玛丽游戏来说,需要对系统的以下性能进行分析:
(1)实用性:
系统操作要求简单,界面友好,用户不需要经过培训或者只需要经过简单的培训即可熟练地使用。
(2)美观性:
系统的开始界面以及运行中的界面需要美观,避免人物及背景颜色和样式的设计过于单调而无法对游戏玩家产生足够的吸引力。
此外游戏中人物变化时的过度效果要好,对比性要强。
(3)故障率:
游戏运行时发生故障的频率要低,而且这些故障都必须能够及时进行修复,此外游戏进度的存储不可丢失,尽量避免因游戏故障率带来游戏玩家的差评。
(4)可维护性:
系统能够定期地对数据进行备份,当发生故障时,可以从另外的服务器中将数据进行恢复。
(5)可扩展性:
当系统需求发生改变时,如增加新的功能,在对系统功能模块扩展时,不会影响客户端的使用。
(6)响应时间:
系统在加载和运行时需要及时地做出响应,不能延迟太久,较短的响应时间将对游戏的推广带来极大的效率,在等待的时候也需要有进度提示。
3相关技术研究
开发工具及环境
Java语言
Java是一种跨平台的程序设计语言,它属于面向对象型的,它由Sun公司于1995年推出[3,4,5,6,7],被美国著名杂志评为1995年十大优秀科技产品,这是因为,传统的软件往往与具体的实现环境相关,一旦环境改变就需要对软件进行一番改动,而Java编写的软件能在执行码上兼容,这样,只要计算机提供了Java解释器,用Java编写的软件就能在其上运行。
Java包括三个版本:
J2SE、J2ME和J2EE,分别面向普通用户,移动用户和企业用户。
Java语言具有如下众多的优点:
简单性:
这是Java的显著特点。
编程简单是每位应用开发者所希望的。
Java很接近C++,但它摒弃了C++很多难用和几乎不用的功能。
Java不支持运算符重载、多态继承及广泛自动强制等功能,而增加了内存空间自动收集(即自动分配和释放内存空间)功能。
此外,Java很小,它的基本解释类支持部分只占40K字节,附加的基本标准库和线程也只需175K字节,所以应用软件可以在相当小的系统上独立工作[8,9]。
分布性:
Java是专为网络设计的。
为了支持Internet中的TCP/IP协议和FTP协议等,Java提供了附加的例程。
Java应用程序能自由地打开和访问网络上的对象,就象这些对象在本地的文件系统中一样[9,10]。
高安全性:
Java的安全机制分为好几层。
Java编译器保证源代码不能违反安全性原则,Java字节代码在运行前要经过一个确认过程;加载器保证从网络或文件系统被加载的软件不违反名字空间和访问限制。
HotJava浏览器提供一种安全对话机制,可为Java应用程序的下载提供配置策略,如让用户声明一道防火墙,进行文件保护和网络安全检查等。
通常用户从Internet上下载文件时,要冒感染病毒的风险。
文件的源发站无法提供保护,因为病毒是被外人注入的,在编译好的代码中难以探测。
Java的Applet不会被写入用户的硬盘,也不会访问用户的文件或随意查看内存,它也不会加入到用户的C或C++程序中,也不访问别的JavaApplet,从而减少病毒感染的机会[11]。
根据字节代码从网上何处来的信息,还可以判断它是来自防火墙内还是防火墙外。
Java还具有公开密钥技术,所以它可用于银行或其它需要高安全性的地方[9,12]。
解释性:
Java是一个解释性语言。
连接过程非常简单,所以便于开发Applet(或者Java应用程序)。
多线程:
多线程程序设计比较复杂,线程间的同步需仔细考虑。
由于Java有一套同步原语,它采用监视规则和指示灯规则,对多线程的设计者有很好的支持。
由于Java应用可以是多线程的,故具有良好的交互性和实时性[9]。
结构无关性:
Java字节代码是一种中间码,可以在任何机器上解释运行。
目前,在个人计算机市场上,应用软件商要为不同的计算机开发同一软件的不同版本。
而Java软件可运行于不同的平台,因此一个Java应用软件只要一个版本就可以了。
所以Java应用软件具有很好的可移植性[13,14]。
另外Java没有C++那样的版本不匹配问题,如操作系统的版本升级了,应用软件也要更新。
但它也有它的缺点,就是执行效率不如其他本地语言,如C/C++等,但随着硬件的迅速发展,这些差别也变得越来越不明显了[15,16,17]。
Eclipse环境
Eclipse是开发Java程序最为常用的开发环境,首先它也是跨平台,因为它本身就是使用Java语言开发的[13]。
由于Eclipse支持许许多多的插件,因此它功能很强大,智能度很高,能对代码的错误及时准确判断并给予提示。
虽然Eclipse是采用Java语言开发的,但它作为开发环境不仅限于Java,目前还能支持C/C++等语言[18]。
Eclipse是开源程序,除了Eclipse之外,还有它的商业版本MyEclipse,其主要用于企业软件的开发,如Javaweb的开发[19]。
面向对象程序设计
面向对象程序设计(ObjectOrientedProgramming,OPP)[20]是计算机编程的一种架构。
面向对象程序设计基本原则是程序是由一个或多个对象组成的。
面向对象程序设计实现了软件工程三个基本目标,即重用性、灵活性和可扩展性[21]。
由于面向对象的架构近似于人类思想,因此面向对象程序设计是目前绝大多数应用程序所采用的编程思想,其中Java语言就是面向对象的程序设计语言。
C/S结构与B/S结构
C/S(Client/Sever)结构即客户机/服务器结构。
它是软件体系结构,通过它可以充分发挥客户端和服务器两端硬件环境的优势,以降低系统的开销。
目前绝大多数应用软件都是采用C/S结构,如我们常用的QQ聊天工具,也是采用这种结构。
客户机和服务器常常分别位于距离较远的两台计算机上,客户机程序的任务是将用户的请求提交给服务器程序,服务器程序通过处理客户机的请求并向客户机反馈请求的结果,客户机再把结果以特定的形式显示给用户[16,17]。
B/S(Browser/Server)结构即浏览器/服务器结构。
在基于B/S的远程监控系统中,最关键的就是生产设备、服务器、客户之间数据的交互,系统只传送与用户的要求有关的数据更新,传输延迟需要被控制在最多数秒钟之内。
该系统结构适应了工业在网络化中的要求,正被广泛应用起来[16]。
4系统设计与实现
开发工作
Java版超级玛丽游戏的开发主要分为整理游戏图片素材以及游戏代码编写两部分:
(1)游戏图片素材整理包括对游戏中所有需要出现的游戏元素的对应图片进行整理,为了实现主要游戏功能,我们仅剪取有关超级玛丽奥,蘑菇怪和食人花等游戏怪物的动作图片,以及游戏场景中的各种砖块和水管的贴图,以及每一关卡的背景图片,将这些图片统一放到程序源文件夹下,并在程序中指明存放路径,方便程序在初始化和运行过程中随时载入和绘制这些图像,为玩家展现出超级玛丽的游戏界面。
(2)游戏代码编写工作的主要任务是在建立对超级马里奥游戏的游戏流程的认识基础上,先实现有关游戏中各游戏要素对游戏事件的相应办法后,初步实现游戏数据模型已经对应的游戏数据处理模块、游戏资源加载方法等程序代码模块,最后整合到游戏主题框架中由负责展现游戏界面的控制类进行管理使这些模块协调运作。
游戏素材管理的工作主要包括游戏界面和角色动画图像的管理。
游戏中出现的所有图片文件将统一放入一个负责管理程序静态资源的类文件进行存储,以方便随时调用。
在本游戏中,存放各种游戏图像的静态类是StaticValue,这个类中包含了许多BufferedImage类的图片对象,之所以选择用BufferedImage对象来保存图像是因为这个文件操作类对象支持对许多格式的图片的读取和存储,(newFile(“XXX”))的方法就可以完成将图像进行序列化存入到BufferedImage对象中,并可以将该对象作为参数传入到程序执行时调用的其他方法中进行处理后绘制到游戏窗口的画布上。
在StaticValue类中,我们选择用BufferedImage类型的List来保存有关Mario,蘑菇怪和食人花等游戏角色和游戏物品的不同状态下的游戏贴图,当游戏运行过程游戏角色的状态发生变化时需要重新绘制时,可以通过获取角色所属的List对象中该角色的目标对象的BufferedImage实例中的信息,实现对游戏角色的及时重绘,保证了游戏的连贯性。
这种做法类似其他游戏项目中对主要固定游戏元素进行保存和记录的配置文件config或者xml文件,即实现一个文件部署描述符的作用,因为往往游戏在开发过程中,有很多还未出现的游戏元素,往往游戏的开发者不能预知到这些情况。
因此实现一个存放游戏元素的特征表来布置已知和将要添加的游戏元素的主要信息,这种文件部署描述符有标准的格式,在开发和部署环境中可供移植的,静态数据文件表除了为游戏开发和部署的协同提供一个标准的属性单外,也影响到游戏执行过程中有关游戏事务和状态的正确性原则。
因此,一个好的游戏文件部署描述符型文件对游戏的设计是至关重要的。
游戏场景布置
游戏的场景设置需要考虑到游戏中存在的各种游戏元素的起始位置的设定,也包含对各种游戏元素种类的筛选,要做到游戏的可玩性和公平性,需要考虑到游戏中导致游戏失败和胜利的比率,更要考虑是否存在某些设置不合理的游戏元素可能导致玩家在游戏过程中遇到各种可能出现的bug,因此在确定好游戏人物在不同场景中触发各种和游戏角色和游戏物品的接触事件时的响应方法和状态变动结果之后,要对游戏场景进行合理的规划,本游戏中为了实现基本的游戏功能,对场景的设置尽量简单。
因此仅加入砖块和问号砖等游戏道具,以及食人花和蘑菇怪等游戏人物。
具体实现的代码在专门负责游戏背景内容的类BackGround中进行添加,诸如游戏道具对象集合allObstructionList为例,先初始化该对象:
privateList
随后根据要添加的道具对象的种类,出现位置等信息,向该集合中加入道具元素:
(newObstruction(120,360,4,this));
//在点(120,360)处加入问号砖石
这样根据已向道具集合中加入的道具对象信息,在初始化游戏程序的时候新建Background类对象实例,将BackGround类对象中的allObstructionList中存放的对象信息对应的实际显示图片加载到程序显示界面上,完成游戏场景的绘制工作。
用例图作为UML建模图的最关键的一种图,其作用在于描述游戏的主要功能需求;其他所有的视图都是从用例视图派生而来,因此对于阐述游戏功能需求而言用例图的存在是不可替代的。
游戏用例图
该游戏的结构简单,通过点击空格键开始游戏,当完成游戏关于游戏胜利的判定条件(即通过所有障碍或者击败所有敌人),游戏胜利。
如果当游戏主角的生命值为0并且还未达到游戏胜利条件,则游戏失败。
玩家选择退出游戏或者重新开始游戏。
在游戏的运行过程中,为了捕获其在所经历的各种状态中的表现,需要使用状态图来对执行过程加以说明。
状态图主要描述的是对象的状态及状态之间的转移,如要显示一个对象在其生命周期内的行为时,需要画出该对象经历的状态汇总图。
要涉及到的UML元素主要有动作状态、活动状态、动作流以及对象流等,可以用来表示动作使用对象或者动作对对象的影响。
游戏状态图
通过对游戏的状态图分析可以更加准确地捕捉到游戏运行过程中每个环节发生的动作,首先从游戏开始时,游戏人物或者翻越障碍或者杀死敌人,才能保证游戏继续,在之后的过程中,如果出现Mario被敌人杀死或者自己掉入陷阱的情况时,游戏将进行重置,将当前的游戏布景还原到最近的一次存档。
同时游戏继续,若当前场景中已经不存在没有跨越过的障碍物或者游戏敌人时,游戏判定玩家获胜,游戏通关。
否则若Mario的生命数到达0时,玩家已经失去继续游戏的机会,游戏判定玩家失败,游戏结束。
上图中的每个发生的动作都有对应的后继状态,当满足监护条件时,程序的动作事件流指向最终的活动状态,即游戏通关或者游戏结束,并最终进入终止状态。
游戏时序图
通过分析游戏的用例需求和经历状态之外,了解有关游戏的生命周期和消息顺序也是作为游戏开发的一项关键指标。
而对游戏执行的时序分析则需要借助顺序图来作为辅助工具。
顺序图是强调游戏中发生传递消息时间顺序的交互图。
主要用于游戏用例的逻辑建模,描述游戏用例实现。
顺序图将交互关系表示为一个二维图,由时间轴和写作中各独立对象组成。
:
游戏时序图
根据上图中关于Mario,敌人Enemy,游戏障碍Obstruction和游戏背景BackGround四个独立对象的消息传递分析,可以大致得到如下的理解:
1)游戏开始后
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 超级 玛丽 游戏 计算机 毕业设计 论文 管理 资料
![提示](https://static.bdocx.com/images/bang_tan.gif)