欢迎来到天天文库
浏览记录
ID:22052984
大小:359.86 KB
页数:15页
时间:2018-10-26
《基于java面向对象程序设计课程报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于Java语言的简易坦克大战游戏设计课程报告摘要:本课程设计使用Java语言开发了一个简单坦克大战小游戏,主要采用面向对象程序设计思想来完成程序的需求分析,概念及逻辑设计,系统的详细实现等过程。游戏主要实现了游戏场景的构造,坦克及子弹类的初始化,敌我坦克对战,游戏存盘及读档等功能。关键词:Java;面向对象;敌我坦克对战;引言tt克大战是一个经典的单机对战游戏,其在青少年中非常流行,0前游戏开发商对其不断改进,己从简单的单机手游扩充为大型的网络对战游戏,但其基于面向对象程序设计思想仍未变。本设计是为检验面向对象程序设
2、计课程的知识运用而进行的实践,其主要FI的是采用而向对象的思想,独立完成程序的各个过程,并在实践屮应用学到的关于Java类与对象,接口,包,异常处理,多线程,事件处理及各类流的处理等知识。1.系统分析1.1系统可行性分析在技术上,本系统的坦克大战是基于Java语言设计,并在Eclipse软件上具体实现的。Java语言是一种跨平台,适合于分布式计算环境的面向对象编程语言,具有简洁,安全,面向对象,动态,体系结构中立,可移植,高性能,多线程,解释执行,分布式等特性。Java现在主要用在WEB开发,手机游戏及一些平台游戏的开
3、发,因为其具有良好的跨平台性,在各类电子产品上应用非常广泛。本系统使用Swing,GUI,Socket,面向对象设计等技术实现,这些技术己非常成熟,广泛应用于各类程序开发,故现在使用这些技术是可行的。在实用性上,坦克大战为一款经典射击游戏,其前身为1985年円本游戏公司在任天堂FC(FamilyComputer)•〒台上开发的红白单机游戏,游戏以坦克战斗及保卫基地为主题,凭借流畅的游戏体验,不错的游戏视觉效果风靡全世界。直到今天,仍奋游戏商家以苏为模型开发出3D网络对战版坦克大战,可见苏具有广大的市场效益。木系统运用J
4、ava跨平台编程语言,在PC上重新实现这一经典游戏,探宂其设计思路与实现方法,并且设计了关卡模式,新增了游戏存盘,读档功能,使游戏玩法更加丰富。因此,本系统具有一定的实用性。1.2系统需求分析凭着由于系统为简易的单机对战射击游戏故游戏必须A有以下功能:1)有图形游戏界面,使用户看得到游戏给出的反馈。2)有人机交互功能,用户可以操作指定的游戏元素。3)坦克可以上下左右四个方向任意行走,丑不可超出游戏设定边界。4)敌方tt克必须明显区别于我方tt克,iL可以随机移动,随机打出炮弹。5)我方坦克可在控制下四个方向任意移动,且
5、可按不同速率发射炮弹。6)敌方坦克之间不能重叠,我方坦克与敌方坦克也不能重叠。7)炮弹与坦克的碰撞检测,且炮弹超出边界的检测。8)加入声音,图片等资源,使游戏具有良好体验性。9)菜单栏选项,可以选择新游戏,退出游戏,存档游戏,读取游戏,并可以查看帮助信息。1.系统概要设计2.1系统结构设计坦克大战游戏主要实现玩家参加游戏的整个过程,用户打开游戏,将出现游戏初始界面,用户可点击菜单栏选择游戏模式和帮助文档。若玩家选择游戏菜单,将出现四个选项:新游戏(N)、退出游戏(E)、存盘退出(C)和继续游戏(S),选择新游戏则玩家开
6、始游戏,选择存盘退出将保存游戏记录并退出,选择继续游戏则读取保存记录玩家继续上次游戏。帮助菜单将帮助玩家了解游戏的相关操作。整个游戏流程如图1所示:程序开始新游戏继续游戏图1系统流程图2.2TankAction类的设计TankAction类是整个系统的核心部分,承担整个系统的所奋可实现功能的调度工作,它的设计决定着游戏的好坏。TankAction类的设计流程如图2所示:娜麵敌我坦克移动(碰撞规避)1发射炮弹1同角色坦克击屮检测►不处理丄报脯舰产生爆炸判断胜负1结束阁2TankAction类设计流程阁TankAction
7、类是主类,通过调用其他类中封装的方法使系统运行起来,下面是TankAction类与其它类的关系。如图3所示:TankAction类(主类)键盘控市赂动DiTank类敌方)随机移动iOZidan类j击中酮炸判断胜负图3TankAction类勾其它类关联图2.3Tank类的设计由面向对象设计思想知,Tank类为系统主要对象。在Tank类屮封装了一些成员变量,包括坦克相对于游戏界面左上角的横坐标(X)、纵坐标(y),坦克正面所对于方向(fangxiang),坦克颜色(color),坦克速度(sudu)和坦克生命值(sheng
8、ming)等;Tank类中没有main函数,其中只封装了一些变量属性和静态方法,如getcolor()、getsudu()、setFangxiang(intfangxiang)等等,其中getcolor()和getFangxiangO用于调用drawTank类屮画出的不同颜色不同方向的坦克,还有其它方法的作用这里不再一一列举。其中
此文档下载收益归作者所有