基于java的吃豆子小游戏开发毕设论文文档格式.docx
《基于java的吃豆子小游戏开发毕设论文文档格式.docx》由会员分享,可在线阅读,更多相关《基于java的吃豆子小游戏开发毕设论文文档格式.docx(40页珍藏版)》请在冰豆网上搜索。
对一般用户来说,它的规则简单,容易上手,且游戏过程变化无穷。
本论文主要介绍如何利用图片工具Photoshop7.0,Java语言编程环境JDK,游戏开发平台Eclipse和音乐转换工具Winamp以及如何使用这些工具实现吃豆子游戏的游戏总体及构成模块。
吃豆子游戏总体是有界面、控制和音乐三个主要部分组成。
吃豆子游戏的界面分为图片制作和位图载入两方面。
图片采用了整体界面图片制作和区块图片制作两种方法。
位图的载入是使用游戏库中的画图精灵实现的。
画图精灵除了可以载入位图,还可以让界面产生图层效果;
吃豆子游戏中的控制方法分为键盘控制和定时器控制两种。
键盘控制是由玩家从键盘输入控制命令对游戏进行控制,而定时器控制是使用定时器对游戏进行时间控制。
键盘控制包括游戏的开始与退出控制、游戏菜单的选择与确定控制和吃豆者的行动方向控制。
定时器控制包括吃豆者的持续移动控制、道具的出现时间控制和道具有效时间的控制。
在游戏音乐方面,分为背景音乐和特殊音效两种。
背景音乐使用了循环播发模式,特殊音效使用了触发播放模式。
关键词:
Java游戏开发画图精灵
BasedontheJavaPac-Mandevelopment
Abstract:
Inthecurrentofrapiddevelopmentofelectronicinformation,electronicgameshavebecomeanimportantpartofpeople'
sdailylife.Ithasbeenapopularformofentertainmentforallages.Pac-mangameisaclassicgamewithelementsofactivity.Ithascausedtheeconomicvalue,whichcanbesaidtobeagreatthinginthehistoryofgames.Since1980,NamcohadreleasedPac-mangame,morethan20yearsthegamehasbeenalwaysplayingbyallplayers.Itseemseasybutchangeableandaddictive.Nowmanypeopleturntoore-setoffthisaddictivePac-mangamewave.Fortheaverageuser,itsrulesaresimple,easytouse,andthegameprocessischanging.
MainofthisthesisisintroductionhowtoinstallthepicturemanufacturetoolPhotoshop7.0,JavalanguagebewrittenprogramenvironmentJDK,gamedevelopmentenvironmentEclipseandmusicconversiontoolWINAMP.AndhowusethesestoolstorealizePAC-MANgame’stotalandit’sconstituteparts.Thegameisdividedintothreeparts:
interfacepart,controlpartandmusicpart.
Interfacepartisdividedintopicturemanufactureandpictureloadedin.Picturemanufactureadoptedthewholeinterfacepicturemanufacturemethodandsquarepiecepicturemanufacturemethod.Pictureloadedinisusingallegro’sDRAW_SPRITEcomplete.Controlpartisdividedintokeyboardcontrolandtimercontrol.Keyboardcontrolisplayerusekeyboardcontrolthegame.Timercontrolisthegamewascontrolledbytimer.Keyboardcontrolincludedincludethegame’sstart.Thegame’swithdraw,themenu’scontrolofthegameandthedirection’scontrolofPac-man.TimercontrolsincludePac-man’sKeeponmove.Atthemusicpare,Itisdividedintothebackgroundmusicandspecialsoundeffect.Thebackgroundmusicusedtocircularlysowedthehairmode,specialsoundeffecttousetotriggertobroadcastthemode.
Keywords:
JavathegamedevelopmentDRAW_SPRITE
1引言
1.1课题研究的背景
电脑已经深入到日常工作和生活的方方面面,比如文字处理、信息管理、辅助设计、图形图像处理、教育培训以及游戏娱乐等。
Windows系统的推出使电脑从高雅的学术殿堂走入了寻常百姓家,各行各业的人们无须经过特别的训练就能够使用电脑完成许许多多复杂的工作。
然而,虽然现在世界上已经充满了花样繁多的各种软件,但它们依然不能满足用户的各种特殊需要,人们还不得不开发适合自己特殊需求的软件。
Java语言的出现迎合了人们对于应用程序跨平台运行的需要,已成为软件开发者应该掌握的一门基础语言,很多新的技术领域都涉及到了Java语言。
目前无论是高校的计算机专业还是IT培训学校都将Java[1]作为主要的教学内容之一。
随着计算机技术的不断发展,网络技术的普及范围越来越广,网络能够提供的服务多样、便捷,已经成为人们生产生活中不可缺少的重要组成部分。
如今网络休闲游戏发展迅速,它凭借健康、方便、互动性强、益智等诸多优点,成为大部分现代人休闲娱乐的首选。
由此游戏是人们活动中一项非常重要的内容,可见电脑对游戏就有了非常大的贡献。
现在摸过电脑的人很少有没玩过电脑游戏的,喜欢游戏的人也很少有不玩电脑的。
吃豆子有是一款风靡全球的电脑游戏机和掌上游戏机游戏,它曾经造成的轰动与造成的经济价值可以说是游戏史上的一件大事。
相信大多数用户都还记得为它痴迷得茶不思饭不想的那个吃豆子游戏时代。
究其历史,吃豆子游戏最早还是出现在PC机上,而我国的用户都是通过红白机了解、喜欢上它的。
现在联众又将重新掀起这股让人沉迷的吃豆子游戏风潮。
对一般用户来说,它的规则简单,容易上手,且游戏过程变化无穷,而现在的网络模式还增加了积分制,使用户既能感受到游戏中的乐趣,也给用户提供了一个展现自己高超技艺的场所。
吃豆子游戏可以说是随计算机的发展而发展,并不断推陈出新演变出各种类似游戏,深受广大玩家喜爱。
这个游戏有的简单,有的复杂,但其根本原理是一样的都是由运动的吃豆者和敌人互相追赶组成的,这款游戏可以训练玩家的反应能力。
谈到游戏软件,大多数人都认为其神妙莫测,高不可及。
而一般游戏软件也确实具有很高的技术难度,随着开发工具及软件开发方法学的不断发展,动手开发游戏也不是十分困难的。
而本设计中的吃豆子游戏是使用Java语言开发的一款游戏。
它使用SOCKET[2]建立连接,多线程处理数据,以及可嵌入网络浏览器的ALET作为客户端,这些特点使这款游戏无论是服务器还是客户端的实现都相对容易。
通过对该软件的编写,还可以巩固我们对以上各种知识的掌握和理解。
1.2国内外研究现状与发展趋势
2012年,小游戏绝对是一个热门的话题,因为小游戏具备太多的特点:
它单机硬盘小游戏、文件体积小、内容简单、游戏关口少、易玩、好玩、易智[15];
它的网站设计和制作针对不同人有不同的设计。
针对青少年来说,它设计的界面颜色清晰和谐、文字简单明了、线条分割有序、图片短小精悍、导航明晰简便、内容充实丰富;
针对上班族来说,它设计趋向于颜色舒适、易智、休闲等;
针对手机一族,它会设计成针对不同手机型号有不同的版本。
现在对于编程爱好者还会有网站免费为他们提供一些游戏编程的素材(语音、文字、图片、视频文件等),必要时可提供一些源代码。
并且还会开设论坛,对他们进行必要的培训,同时可以从中吸收一些优秀人员。
因此小游戏容易得到推广。
在中国,网页小游戏是有很大市场的。
它最大的优势在于消磨时间,不需要下载客户端,有空上去看一下就成,非常方便,在收费方面也采用典型的道具收费,购买后可能是游戏加速,也可能是配备非常强大的装备或者更换更强劲的职业,应有尽有。
但网页小游戏也有其局限,由于它的功能模块是交给服务器来实现的,版本更新交给服务器来做,多数缺点是表现力差,很多小游戏模式在实际中都无法实现(主要是服务器负荷问题)等。
在国外网页游戏游戏的黏人程度是远远超过一般网站。
媒体报道,据美国市场研究机构ParksAssociates近日公布的一份报告称,尽管网络视频和社交网站非常流行,但网页游戏仍然是美国网民最喜爱的娱乐方式。
据数据显示,34%的美国成年网民每周都会玩网页游戏,而观看YouTube等视频网站的比例为29%,访问MySpace和Facebook等社交网站的比例为19%。
所以网页小游戏在国外也占有一席之地。
近年来,网页游戏越来越有着这样一个趋势,就是由FLASH技术向Java技术的转变。
如国外的《RunesCape》刚开始它是将Java程序下载到用户硬盘中,再从本地中进行打开,但是随着Java语言被web[3]广泛接受后,现在的浏览器均支持JavaApplet,因此用户也可以在网页上运行《RunesCape》。
至此,不得不感叹Java程序在网页游戏中应用的强大而广泛,也看到网页游戏在向着Java技术的方向大步迈进,并且已经收到了比较明显的成效。
相关资料显示,2011年中国网页游戏的用户规模为250万人,艾瑞咨询预计未来用户规模将达到900万人,同比增长260%。
保守估计,随后的三年中网页游戏的用户以每年500万人左右的速度增长,预计到2012年将突破2000万人,达到2020万人。
网页游戏新产品不断面世,目前业内人士普遍看好网页游戏的发展前景。
与11年相比,12年国内的网页游戏用户翻了2-3番。
网页游戏进入门槛较低,吸引许多中小型团队加入研究和运营的行列。
运营商与产品数量的急剧增加充分调动了整个网游市场,从而形成成倍增长的良好态势。
因此中国网游市场之大,潜力之足,用户群之广,只有研发适合中国用户的产品才能扩大目标用户群,才能在这块市场里占据一席之地。
在此有理由相信,在中国乃至全球网游的未来发展中,网页游戏从其重返网游市场之始,就已经注定了它在网游市场中必定占有一席位置,而以Java为核心技术的必定是网页游戏未来发展的重头戏。
1.3课题的意义及目的
随着人们生活质量的不断提高以及个人电脑和网络的普及,人们的业余生活质量要求也在不断提高,选择一款好玩,精美,画面和音质,品质优良的休闲游戏已经成为一种流行的休闲方式。
可以说在人们的日常生活中,除了工作、学习,玩一款自己喜欢的游戏正在成为一种时尚。
所以,开发出一款大家都比较喜欢的,高品质的休闲互动游戏,将会受到人们的普遍欢迎。
让人们在工作学习之余,享受游戏的快乐,也是一款游戏真正成功的意义。
目前,各种各样的游戏层出不穷,利用各种语言编写的游戏也数不胜数,那么选择一个好的语言来编写游戏则显得尤为重要。
那么,作为休闲互动游戏的先导语言——Java当然成为首选。
Java语言能在企业中应用这么多年,事实证明了它非常适合于开发大型软件。
当Java的运行效率不再是问题的时候,Java[4]语言严谨、高抽象、可读性强的优势就体现出来了。
使用Java作为平台,极大的方便了游戏脚本的使用。
对于游戏开发来说,由于涉及到比较复杂的情况,开发过程很多时候是一个不断修改的过程,可以方便的修改游戏内容是十分关键的。
对于很多游戏引擎来说,都有自己编写的脚本解释器,用来解释一些自定义的游戏脚本语言。
由于其虚拟机特性,Java本身就可以用来编写游戏脚本,这极大的方便了Java游戏编程。
通过Java语言来开发的游戏具有可以在一个本地桌面系统下运行,也可以在玩野下运行的功能。
吃豆子游戏是一种古老而又有趣的游戏,游戏软件不计其数,网上就有好多关于实现的复杂算法和设计,其难度让一般初学者望而却步。
本课题就是利用数组作为地图的数据结构,提出一种用Java[5]语言实现的简易方法,对初学者可仿此开发类似游戏,并了解游戏软件的设计与开发过程。
而通过这些开发的出来的吃豆子游戏是一种内容丰富,画面优美,益智类游的戏,并且不受网络的限制,让人们能够在任何时刻通过体验游戏,达到身心愉悦、放松心情。
本课题的目标是通过对本游戏的设计,综合自己在校期间所学的理论知识,设计开发吃豆子游戏,并使自己熟悉应用系统的开发过程,培养独立思考能力,检验学习效果和动手能力,初步掌握软件工程的系统理论,进一步巩固和加强自身对java基础知识的理解,提高自己的编程水平,从而达到理论与实践相结合的目的。
吃豆子游戏是基于以上目标而开发的。
该游戏的最重要的目的是供用户休闲娱乐、益智有趣。
本游戏的主要特点是:
使用范围广,操作简单,无网络限制等。
2可行性研究
2.1设计的目的
通过本游戏的设计,综合自己在校期间所学的理论知识,设计开发吃豆子游戏,使自己熟悉应用系统的开发过程,培养独立思考能力,检验学习效果和动手能力,初步掌握软件工程的系统理论,进一步巩固和加强自身对java基础知识的理解,提高自己的编程水平,从而达到理论与实践相结合的目的。
2.2本设计的问题定义
基本要求:
本游戏开发的总体任务是实现游戏的可操作性,以及界面的美观性。
整个开发过程遵循软件工程规范,采用JavaApple[6]t编程来实现界面以及事件的控制,用户根据键盘的四个方向键控制翻转、向左、向右和向下操作,通过菜单栏中的相应菜单选项实现游戏的开始、结束、变换方向、积分等功能。
目标:
通过本游戏的开发,主要实现游戏的可操作性以及美观性,同时使自己对Java语言的了解更进一层,为将来的实际工作打下坚实的基础。
条件、假定和限制:
由于知识以及能力的限制,本游戏所实现的功能不够强大,可对本游戏进行改善,从而增强游戏的功能。
评价尺度:
由于本软件是一个初级产品,对其要求不是太苛刻,所以能够达到吃豆子游戏的一般功能即可。
2.3可行性分析
2.3.1技术可行性
面向对象是一种认识世界的方法,是一种程序设计方法。
面向对象的观点认为,客观世界是由各种各样的实体,即对象组成的。
每种对象都有自己的内部状态和运动规律,不同对象间的相互联系和相互作用就构成了各种不同的系统,并进而构成整个客观世界。
按照这样的思想设计程序,就是面向对象的程序设计。
面向对象的程序设计吸取了结构化程序设计的先进思想,并把它们同几个支持用户用新方法进行程序设计的有力概念结合在一起。
所有面向对象的程序设计语言一般都包含三个概念:
封装、多态性和继承性。
这种方法要求语言必须具备抽象、封装、继承和多态性这几个关键要素。
面向对象的程序设计,是通过数据和代码建立分块的内存区域,以便提供对程序进行模块化的一种程序设计方法,这些模块可以被用作样板,在需要时再建立其副本。
C++[7]和Java在面向对象这方面比VB要强,所以我排除了用VB做的可能性。
但是C++主观上在校期间学校并没有这方面的授课内容,虽然自学了一些内容,对C++也有一定了解,但是若用C++实现,必定是基于windows[8]应用程序的VisualC++设计,对于windows编程,我还有待提高,而根据课题要求JavaApplet能够满足网页小应用游戏的设计要求的掌握,因此综合考虑,决定采用Java语言编写吃豆子游戏。
2.3.2操作可行性
本课题设计的游戏需要在页面上打开,由此我们选择使用JavaApplet来编写吃豆子游戏的代码。
同时,选择Eclipse为本课题的开发工具是因为它含有大量的开发爱好者为其开发新的插件。
前几种主流IDE的功能差别并不算大,针对不同的应用需求,开发者会选择最适合当前应用需求的开发工具来进行开发,实际上大多数的需求并没有对IDE提出太多的要求,既然Eclipse功能并不比别的IDE差,而且它是免费的。
Eclipse集成了不同的软件开发工具产品,用户可以通过相同的接口使用不同的开发工具,这样以针对开发者自身的具体情形定制自身开发需要的工具,将更有利于本课题的开发。
3.设计所用软件及环境
3.1Java语言简介
a)Java语言的历史
Java的诞生主要得益于对家用电器的芯片的研制。
开始时,开发者想用C++语言来开发电器的芯片,但是,由于芯片的种类各不相同,因此,程序要进行多次编译。
尤其是C++中的指针操作,稍有不慎,就会引起问题。
程序可以出错误,但是家用电器不能出错误。
为此,开发者将C++[9]语言进行简化,去掉指针操作,去掉运算符重载,去掉C++中的多重继承,得掉了Java语言,将它变为一种解释执行的语言,并在每个芯片上装上一个Java语言虚拟机。
刚开始时Java语言被称之为Oak[10]语言(橡树语言)。
WWW(万维网)的发展则进一步促进了Java的应用。
刚开始时,WWW的发展比较缓慢,每个网页上面都是静态的画面,不能与用户进行动态交互操作。
即使是后来的CGI(通用网关接口)也只有在服务器端运行,速度太慢,人们迫切需要能够在浏览器端与用户进行交互,并且使画面能够动起来,但是,WWW上的计算机各种各样,操作系统也是千差万别,后来人们想到了Oak语言,他是解释型执行语言,只要每台计算机的浏览器能够有他的虚拟机,Oak语言语言就可以运行,因此Oak语言发展起来,后来改名为Java语言,成为当前网络的流行的开发语言。
Java语言现在逐渐成熟起来,它的类已接近千个,无所不包,而且还可以通过第三方购买中间件,为Java语言的发展提供了良好的发展前景。
同时它也是跨平台的语言,因此许多软件开发商及硬件开发商业争先恐后地想搭上Java语言的开车,都声称支持Java语言。
b)Java语言的优点
简单易学:
Java语言虽然起源于C++,但是去掉了C++语言中难于掌握的指针操作,内存管理非常简单,如果要释放内存资料,你仅需要让其对象的引用等于null,这样就是操作变得异常简单。
面向对象:
Java是面向对象的编码语言。
面向对象技术较好地解决了当今软件开发过程中新出现的种种传统面向过程语言所不能处理的问题,包括软件开发的规模扩大,升级加快,维护量增大以及开发分工日趋细化、专业化和标准化等。
面向对象技术的核心是以更接近于人类思维的方式建立计算机模型,它利用类和对象的机制将数据与其上的操作封装在一起,并通过统一的接口与外界交互,是翻译现实世界实体的各个类在程序中能够独立、自治和继承。
分布式:
Java包括一个支持HTTP(超文本传输协议)和FTP(文件传输协议)等基于TCP/IP协议的子库。
因此,Java应用程序可凭借URL[11](统一资源定位符)打开并访问网络上的对象,其访问本地文件系统几乎完全相同。
为分布环境尤其是Internet提供动态内容无疑是一项非常宏大的工程,但Java的语法特性可很容易地实现这项目标。
④健壮性:
Java致力于检查程序在编译和运行时的错误。
类型检查可以检查出许多开发早起出现的错误。
Java自行操纵内存,减少了内存出错的可能性。
Java还实现了真数组。
避免了覆盖数据的可能。
这些功能特征大大缩短了开发Java应用程序的周期。
Java提供Null指针检测数组便捷,进行异常出口字节代码校验。
⑤安全稳定:
对网络上应用程序的里一个要求是较高的安全可靠性。
用户通过网络获取并在本地运行的应用程序必须是可信赖的,不会充当病毒或者其他恶意操作的传播者而攻击本地的资源,同时它应该是稳定的,轻易不会产生死机等错误,使得用户乐于使用。
⑥平台无效性:
Java[2]语言独特的运行机制使得它具有良好的二进制级的可移植性,利用Java,开发人员可以编写出与具体平台无关,普通适用的应用程序,大大降低了开发、维护和管理的开销,也就是一次编译,随处运行。
⑦支持多线程:
多线程是当今软件开发技术的又一重要成果,已成功应用在操作系统和应用开发等多个领域。
多线程技术允许同一个程序有两个或两个以上的执行线索,即同时做两件或多件事情,满足了一些复杂软件的需要。
Java不但内置多线程功能,而且定义了一些用于建立、管理多线程的类和方法,使得开发具有多线程功能的程序变得简单、容易和有效。
⑧高性能:
如果解释器速度不慢,Java可以在运行时直接将目标代码翻译成机器指令。
Sun用直接解释器一秒钟内可调用300000个过程。
翻译目标代码的速度与C/C++的性能没审美区别。
⑨动态性:
Java的动态特性是其面向对象设计方法的扩展,它允许程序动态地装入运行过程中需要的类。
Java编译器将付好引用信息转换为数值偏移量。
这样,一个存储器生成的对象不在编译过程中决定,而是延迟到运行时由解释器确定,这样对类中的变量和方法进行更新时就不至于印象现存的代码。
解释执行字节码时,这种付好信息的查找和转换过程仅在一个新的名字出现时才进行一次,随后代码便可以全速这型。
在运行时确定引用好处是可以使用已被更新的类,而不必担心会影响原有的代码。
c)Java虚拟机(JVM)[12]
Java程序要想运行,必须有Java虚拟机(JVM)。
Java虚拟机是编译后的Java程序和硬件系统之间的接口,我们可以把Java虚拟机看成是一个虚拟的处理器,它可以执行编译后的Java指令,还可进行安全检查。
Java虚拟机是在一台真正的计算机上用软件方式实现的一台假想机,其使用的代码存储在.class文件中。
这样一来,利用Java虚拟机也便实现了与平台无关的特点,Java语言在不同平台上一年行驶不需要重新编译。
Java虚拟机在执行字节码时,将其解释为具体平台上的机器指令执行。
因为Java的实用性强,优点多,所以针对现在多种多