基于Java的勇闯NBA游戏的设计与实现论文定稿.docx
- 文档编号:25029443
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:75
- 大小:1.60MB
基于Java的勇闯NBA游戏的设计与实现论文定稿.docx
《基于Java的勇闯NBA游戏的设计与实现论文定稿.docx》由会员分享,可在线阅读,更多相关《基于Java的勇闯NBA游戏的设计与实现论文定稿.docx(75页珍藏版)》请在冰豆网上搜索。
基于Java的勇闯NBA游戏的设计与实现论文定稿
PINGDINGSHANUNIVERSITY
毕业论文(设计)
题目:
基于Java的“勇闯NBA”游戏的
设计与实现
院(系):
软件学院
专业年级:
软件工程2008级
姓名:
张建明
学号:
081530108
指导教师:
吕海莲教授申远助教
2011年11月17日
原创性声明
本人郑重声明:
本人所呈交的毕业论文,是在指导老师的指导下独立进行研究所取得的成果。
毕业论文中凡引用他人已经发表或未发表的成果、数据、观点等,均已明确注明出处。
除文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的科研成果。
对本文的研究成果做出重要贡献的个人和集体,均已在文中以明确方式标明。
本声明的法律责任由本人承担。
论文作者签名:
日期:
关于毕业论文使用授权的声明
本人在指导老师指导下所完成的论文及相关的资料(包括图纸、试验记录、原始数据、实物照片、图片、录音带、设计手稿等),知识产权归属平顶山学院。
本人完全了解平顶山学院有关保存、使用毕业论文的规定,同意学校保存或向国家有关部门或机构送交论文的纸质版和电子版,允许论文被查阅和借阅;本人授权平顶山学院可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存和汇编本毕业论文。
如果发表相关成果,一定征得指导教师同意,且第一署名单位为平顶山学院。
本人离校后使用毕业论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为平顶山学院。
论文作者签名:
日期:
指导老师签名:
日期:
基于Java的“勇闯NBA”游戏的设计与实现
摘要
随着电脑的普及,各样类型的游戏正在不断地走进无数人的生活。
同时,由于生活节奏的加快,人们在繁忙的工作、学习之余更加地注重体育锻炼,篮球作为大家最为喜爱的体育运动之一,因此,也有着无数的球迷喜爱、关注着代表着世界篮球最高水平的体育赛事——NBA。
该游戏是将NBA与游戏结合,开发的一款NBA角色扮演类游戏,相信它一定会吸引无数的篮球爱好者和游戏玩家前去体验。
该游戏是一个用JAVA应用程序编写的角色扮演类游戏,玩家可以创建一个角色来进行游戏,角色拥有篮球和传统RPG游戏的角色属性,游戏包括个人资料,NBA生涯,名人堂,NBA商店,练身房,我的物品,篮球知识问答等模块。
该游戏的主要特色在于攻防双方分别使用自己的篮球攻击和防守技能来进行回合式的对战,每一回合双方攻防的成功率是由对战双方的属性值和使用的攻防技能的技能值等因素共同决定,然后根据该成功率得出该回合得分与否,最终先得到一定分数的一方将获胜。
为达到游戏界面的美化效果,所有的使用画布进行绘制,同时设有背景图片。
玩家操作的事件处理使用鼠标和键盘事件相结合的方式实现了友好的用户交互。
本论文阐述了基于Java的“勇闯NBA”游戏的背景、研究现状及意义,介绍了系统开发所使用的环境、工具以及开发语言,并对相关的开发技术进行了阐述。
按照软件开发的生命周期论述了需求分析、概要设计、详细设计和代码实现的过程。
具体论述了面向对象设计方法、系统设计的原则、系统设计的总体目标以及体系结构的特点。
关键词:
Java应用程序,角色扮演,NBA,画布
TheDesignandImplementationofTheJava-based"DawnoftheNBA"Game
Abstract
Withthepopularizationofcomputers,everytypeofgameintothelivesofcountlesspeople.Thesametime,duetotheacceleratedpaceoflifeinthebusywork,learnandmoreemphasisonphysicalexercise,basketballasoneofthesportsmostpopular,soalsohasnumerousfanslovewatchingrepresentsthehighestworldbasketballthelevelofsportingevents-theNBA.ThegameoftheNBAandthegame,thedevelopmentofaNBArole-playinggames,Ibelieveitwillattractmillionsofbasketballfansandgamerstogoexperience.
ThegameisaJAVAapplicationwritteninrole-playinggame,playerscancreatearoletoplaythegame,therolehastheattributesofbasketballandtheroleofthetraditionalRPGgames,thegame,includingpersonalinformation,NBAcareer,HallofFame,theNBAStore,practicethegym,myarticles,basketballquizmodule.Themainfeaturesofthegameisbetweenoffensiveanddefensivebasketballattackanddefenseskillstocarryoutround-stylebattle,eachroundofboththeoffensiveanddefensivesuccessrateisthevalueoftheskillsfromtheBattleofthepropertiesofboththevalueanduseofoffensiveanddefensiveskillsandotherfactorscommondecision,andthenderivedbasedonthesuccessrateoftheroundscoresornot,thefinalbeforeacertainfractionofthepartywillwin.Toachievethebeautifyingeffectoftheinterfaceofthegame,allusethecanvastodraw,atthesametimehasabackgroundimage.Playersoperatingtheeventhandlerusingacombinationofmouseandkeyboardeventstoachieveauser-friendlyinteraction.
ThispaperdescribedthebackgroundbasedonJava's"DawnoftheNBAgame,thestatusandsignificanceoflanguageusedinthesystemdevelopmentenvironment,tools,anddevelopmentandthedevelopmentoftechnologiesaredescribed.Discussesthesoftwaredevelopmentlifecyclerequirementsanalysis,preliminarydesign,detaileddesignandcodeimplementationprocess.Arediscussedindetailtheprinciplesofobject-orienteddesign,systemdesign,thecharacteristicsoftheoverallsystemdesigngoalsandarchitecture.
Keywords:
JAVAapplication,RPG,JDBC,canvas
1绪论
角色扮演类游戏是当今比较流行的游戏类型之一,一直以来深受不少玩家的喜爱,而现在的NBA游戏也得到了许多的玩家的喜爱和认可,本系统是将角色扮演类游戏和篮球运动相结合,玩家可以通过轻松的进行游戏来缓解工作和学习压力,并且能够在游戏的同时收获更多NBA以及篮球方面的知识。
本章主要是介绍该系统的研究背景、意义和研究现状,并介绍了本论文的结构安排。
1.1研究背景与意义
如今,随着电脑的普及,各样类型的游戏正在不断地走进无数人的生活。
角色扮演游戏(RPG,英文全称Role-playinggame)是一种最深受人们喜爱的游戏模式,在游戏中,玩家扮演虚拟世界中的一个或者几个特定角色在特定场景下进行游戏。
角色根据不同的游戏情节和统计数据(例如力量、灵敏度、智力、魔法、技能等)具有不同的能力,而这些属性会根据游戏规则在游戏情节中改变。
有些游戏的系统可以根据此而改进。
玩家需扮演游戏中的主角(可以不止一个人)在游戏。
由于角色扮演游戏可以使玩家扮演与其本人截然不同的人物,可以满足玩家成为游戏中最强大的人、最伟大的英雄的欲望,而亲身体验跌宕起伏的剧情又能使玩者如同看一本小说一般,与游戏中的人物同喜同悲。
这些恐怕也就是角色扮演游戏里最有趣最吸引人的地方[1]。
因此,编写一个角色扮演类游戏也必将带给人们也不一样的感受,在游戏的同时体会到不少的乐趣。
随着社会的飞速发展,人们生活水平也在不断地提高,许多人都更加注重精神文化生活,休息娱乐我们这个时代生活很重要的一部分,游戏就是一种参与交互式的形式,由于电脑的普及,喜欢游戏休闲的人日益增多,同时,人们也都更加地注重体育锻炼,喜欢关注体育赛事,篮球就作为大家最为喜爱的体育运动之一,而NBA更是汇聚了世界顶尖篮球运动员并且代表着世界篮球最高水平的体育赛事,吸引了无数的球迷的喜爱和关注。
如果将NBA与游戏结合,开发一款新型的NBA游戏也定会吸引无数的篮球爱好者和游戏玩家前去体验。
设计一款角色扮演类的“勇闯NBA”的游戏,让玩家可以上传自己的图片来创建一个角色去挑战现役的NBA球员和以任务的形式去挑战已经退役的深受大家喜爱的名人堂篮球巨星,不仅可以满足玩家们心中对NBA的那种渴望之感,同时还可以缓解其工作、学习压力,在游戏中可以再设有篮球知识问答环节,通过答题可以收获金钱、经验等也就更能够增加玩家的乐趣,同时还能在轻松游戏之时收获更多NBA方面的知识。
1.2研究现状
目前比较受欢迎的NBA游戏主要是EA公司开发的NBALive以及世嘉开发(后转为Take-Two)的NBA2K系列,它们都是操作型游戏,玩家进入游戏后可以任意选择自己的球队和将要对战的球队,系统模拟出比赛现场,然后玩家通过按键控制己方球员移动、控球、投篮来完成与电脑智能控制另一支球队的比赛。
其中在今年10月份发布的《NBA2K12》,其游戏控制给人一种更精干的感觉,比之前作有更大的控制力,一部分是因为动画没有了以前那种累赘感;行动间更加紧凑、执行命令时更加干脆利落。
运球进攻可以在更小的范围内执行,令你能够在有限的空间内,控制到更多的球员,边场和角位运作相对而言就更精准,大大避免玩家一不小心就把球运入人群区域。
《NBA2K12》是2KSports继《NBA2K11》之后的又一篮球巨作,在NBA2K11成功的基础上,2K在新作中又新增了“辉煌模式”,完美重现了15位传奇球星的辉煌岁月。
2K表示,在这一模式下,玩家能够体验到15位传奇球星和他们所在队伍的最辉煌岁月,包括乔丹、魔术师约翰逊、拉里伯德、J博士和贾巴尔等等。
在这一模式下游戏时,你能够通过努力解锁这些传奇球队,并在普通模式下与现在的强队一较高下,比如挑战迈阿密三巨头和科比带领的湖人队还有诺维斯基的小牛队等等。
还有就是网页游戏《范特西篮球经理》,它是是国内第一款根据实时体育赛事竞争的网络体育策略游戏,玩家在游戏中充当一名NBA经理人,所有NBA球星掌握在你手中的一款在线模拟经营类网页游戏。
这款游戏基于网页设计,无需下载,系统配置要求不高,只要可以轻松打开网页便可随意玩转。
该游戏将带给玩家前所未有的刺激体验,开辟一个新的网游时代。
在游戏中玩家充当俱乐部经理的角色,管理球员,雇佣职员,设置阵容战术,在比赛中进行指挥,使玩家在游戏的过程中充分展示经营和管理一个球队需要具备的素质和能力,从而最终成为一位杰出的篮球经理人。
《范特西篮球经理》给玩家提供了充足的管理空间,玩家并不需要是一个地道的球迷,也不需要有太多的经营经验,它可以让你从不懂篮球到喜爱篮球,最终学会经营篮球,从中找到无限乐趣。
然而《范特西篮球经理》的对战全是文字直播,不能够很好的吸引玩家。
角色扮演类游戏如梦幻西游、大话西游、仙剑奇侠传和古剑奇谭等已深入无数人的心中,其采用的对战模式更是被不少的游戏爱好者熟知和喜爱。
如果开发一款角色扮演类型的NBA游戏,并且应用篮球的攻防技巧来进行类似仙剑奇侠传中的游戏对战模式,给玩家带来一种亲身去“闯”NBA并与心目中球星对战之感,相信会得到不少玩家的喜爱。
1.3本论文结构安排
在对如今比较流行的角色扮演类游戏和有关NBA的篮球游戏体验和调研的基础上,再结合自己对篮球运动的喜爱以及对篮球知识的了解,然后运用大学期间所学的专业技术知识,设计实现了一个基于Java的“勇闯NBA”角色扮演类游戏。
该游戏是一个基于Java应用技术,采用JDBC数据库访问技术设计开发的一款角色扮演类游戏,选择SQLServer2000数据库管理系统进行数据存储管理,使用JDK版本为JDK1.6,并利用MyEclipse8.0开发环境进行游戏开发。
接下来介绍该论文的组织结构安排。
第一章主要介绍了该游戏研究、设计的背景和角色扮演类游戏和NBA篮球游戏的研究现状,在此基础上分析设计,论述该游戏的意义以及分析和目前已有该类游戏的不同和改进之处。
第二章主要介绍了设计该游戏所用到的相关技术和开发工具的简单介绍,包括开发环境,使用的数据库管理系统等。
第三章是对该游戏的需求分析,在调研大家对篮球游戏的需求的基础上,详细分析、总结该游戏所需具有的功能模块,并对各功能模块进行了具体的用例分析,绘制出系统的用例图,并由此得出了不同玩家的功能需求和系统的性能、数据需求。
第四章是系统的概要设计,主要包括游戏功能模块设计以及数据库的设计。
功能模块设计是更加需求分析得出游戏必须的几个功能模块,绘制了系统的功能模块图并阐述了各模块所具有的功能。
数据库是一个游戏的重要的支撑,整个游戏的设计都将是基于数据实现的。
因此,对数据库进行仔细的分析设计就显得极其重要。
数据库的表主要是根据游戏的各功能模块的需求得出并设计的。
接着对主要的数据库表的属性字段进行了详细的介绍并绘制了整个系统的E-R图,展示了各表之间的关联关系。
第五章介绍了该系统的详细设计与实现,从页面设计、类的设计以及各功能的详细设计与实现结果进行了描述。
页面设计阐述了进行页面设计所需的关键技术,页面的布局方式以及字体颜色以及图片的如何选择搭配来达到游戏界面的美观效果。
类的设计是针对各功能模块而设计的具体功能类和为了支持这些功能类而设计的支持类等。
功能的详细设计与实现是对如何具体的实现游戏的各大功能进行了具体的描述,重点描述了进行这些功能设计的设计理念、实现这些功能所用到的专业技术和具体的实现过程,同时对游戏功能的实现界面进行了截图展示。
第六章是系统的测试,包括测试环境的介绍,功能测试、用户界面测试和测试得出的一些问题严重程度的描述。
其中的功能测试主要通过设计测试用例对各大功能模块进行测试,以确定各功能都已实现且能正常运行。
用户界面测试主要是用于测试游戏的各界面之间能否正确的跳转,并且能够正确的向玩家展示所有的必要信息。
第七章是作为结束语,对该游戏的设计做了简单的总结,阐述了自己通过本次系统设计从中的收获和自身存在的不足之处,最后对系统的改进和扩充寄予了一定的展望。
1.4本章小结
本章首先介绍了该课题的背景和意义,明确了设计该游戏的必要性和意义所在。
接着介绍了该类游戏的研究现状,最后介绍了本论文的组织结构安排。
2技术及开发工具介绍
该部分主要介绍游戏所采用的技术及开发工具,包括画布绘制技术,事件处理技术,图片拷贝技术,Java多线程机制,SQLServer2000数据库管理系统,JDBC数据库连接技术。
2.1画布绘制技术
Java.awt包中的Canvas类负责创建画布对象[2]。
创建画布对象的常用办法是用Canvas的子类来创建画布对象,并在子类中重写父类的publicvoidpaint(Graphicsg)方法。
该方法是Component类的一个方法,可以在其子类中重写这个方法,当重写这个方法是,参数g是自动实例化的,这样就可以在子类中使用对象g调用相应方法,比如画串、画图形、画图像等,组件调用repaint()方法时,程序首先清除paint()方法以前所画的内容,然后再调用paint()方法。
游戏需要有着良好的界面方可赢得更多玩家的喜爱,为了达到界面的美化效果,需多处绘制图像。
在Java小应用程序中,有个Applet类提供了一个下载图像的方法getImage(),因此,在小应用程序中较容易绘制图像。
而该游戏程序是Java应用程序,编写应用程序时经常要使用Frame类,但Frame类没有获取图像的方法。
这就需要java.awt包中的Tookit类帮忙。
Toolkit类是一个抽象类,不能用构造方法直接创建这样对象,但Java运行环境提供了一个Toolkit对象,任何一个组件调用getToolkit()方法可以返回这个对象的引用。
Toolkit类有一个获取图像的方法getImage(Strings)。
2.2事件处理技术
编写游戏必然要用到事件处理技术来进行玩家操作事件的判断以做出相应的事件处理[3]。
在Java应用程序中事件处理有很多种,在本游戏中主要用到ActionEvent事件、ItemEvent事件、鼠标事件、键盘事件。
2.2.1ActionEvent事件
当在文本框中输入字符并按下Enter键时,java.awt.event包中的ActionEvent类自动创建一个事件对象,并将它传递给actionPerfomed(ActionEvente)方法中的参数e,监视器将自动调用方法:
actionPerformed(ActionEvente)对发生的事件做出处理。
所以,称文本框这个事件源可以发生ActionEvent类型的事件。
为了能监视到这种类型的事件,事件源必须使用addActionListener方法获得监视器:
创建监视器的类必须实现接口ActionListener。
2.2.2ItemEvent事件
选择框可以发生ItemEvent事件,当选择框获得监视器之后,选择框从未选中状态变成选择状态或从选中状态变为未选中状态时就发生ItemEvent事件,即ItemEvent类将自动创建一个事件对象。
发生ItemEvent事件的事件源获得监视器的方法是addItemListener(监视器)。
处理ItemEvent事件的接口是ItemListener,创建监视器的必须实现ItemListener接口,该接口中只有一个方法。
当选择框发生ItemEvent事件时,监视器将自动调用接口方法:
itemStateChanged(ItemEvente)。
除了可以使用getSource()方法返回ItemEvent事件的事件源外,ItemEvent还提供了getItemSelected()方法,该方法也返回ItemEvent事件源。
2.2.3鼠标事件
由于是游戏,所以玩家必然要大量的使用鼠标进行操作,因此,鼠标事件必不可少,还将被多次应用。
在任何组件上都可以发生鼠标事件。
使用MouseListener接口可以处理在事件源上按下、释放鼠标,在事件源上点击,鼠标进入、退出事件源等鼠标事件,使用MouseMotionListener接口可以处理在事件源上拖动和移动鼠标的鼠标事件。
使用这两个接口就可以完成游戏所需的所有的鼠标操作的事件处理。
2.2.4键盘事件
为了更加的方便玩家操作,还要设有一些的键盘事件。
当玩家按下、释放或敲击键盘上一个键时就触发了键盘事件,必须要有触发事件的事件源。
当一个组件处于激活状态时,敲击键盘上一个键就导致这个组件触发了键盘事件。
事件源使用addKeyListener方法获得监视器。
监视器是一个对象,创建该对象的类必须实现接口KeyListener。
用KeyEvent类的publicintgetKeyCode()方法,可以判断哪个键被按下、敲击或释放,getKeyCode()返回一个键码值。
也可以用KeyEvent类的publicchargetKeyChar()判断哪个键被按下、敲击或释放,getKeyChar()返回键上的字符。
2.3图像拷贝技术
玩家创建角色时可以从本地计算机上传一张自己的图片,为了保证本地机的这张图片被移动走或删除时在游戏中仍能够显示出玩家图片,需要在玩家创建角色成功后将图片拷贝到项目的目录下[4]。
由于图片是二进制形式的文件,因此必须使用字节流进行拷贝。
通过该输入流读取文件数据到缓存中,再通过该输出流将缓存中的数据读出写到新的文件中即可实现图像文件的拷贝。
2.4Java多线程机制
Java编写程序都运行在在Java虚拟机(JVM)中,在JVM的内部,程序的多任务是通过线程来实现的[5]。
每用java命令启动一个java应用程序,就会启动一个JVM进程。
在同一个JVM进程中,有且只有一个进程,就是它自己。
在这个JVM环境中,所有程序代码的运行都是以线程来运行。
在Java程序中,JVM负责线程的调度。
线程调度是值按照特定的机制为多个线程分配CPU的使用权。
调度的模式有两种:
分时调度和抢占式调度。
分时调度是所有线程轮流获得CPU使用权,并平均分配每个线程占用CPU的时间;抢占式调度是根据线程的优先级别来获取CPU的使用权。
JVM的线程调度模式采用了抢占式模式。
2.5SQLServer数据库管理技术
SQLServer2000是Microsoft公司推出的SQLServer数据库管理系统,该版本继承了SQLServer7.0版本的优点,同时又比它增加了许多更先进的功能[6]。
具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行MicrosoftWindows98的膝上型电脑到运行MicrosoftWindows2000的大型多处理器的服务器等多种平台使用。
SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等[7]。
目前,绝大多数流行的关系型数据库管理系统,如Oracle,Sybase,MicrosoftSQLServer,Access等都采用了SQL语言标准[8]。
虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select,Insert,Update,Delete,Create,以及Drop在内的标准
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Java NBA 游戏 设计 实现 论文 定稿