基于JAVA的坦克大战游戏的设计与实现【文献综述】

基于JAVA的坦克大战游戏的设计与实现【文献综述】

ID:437676

大小:30.50 KB

页数:5页

时间:2017-08-02

上传者:U-944
基于JAVA的坦克大战游戏的设计与实现【文献综述】_第1页
基于JAVA的坦克大战游戏的设计与实现【文献综述】_第2页
基于JAVA的坦克大战游戏的设计与实现【文献综述】_第3页
基于JAVA的坦克大战游戏的设计与实现【文献综述】_第4页
基于JAVA的坦克大战游戏的设计与实现【文献综述】_第5页
资源描述:

《基于JAVA的坦克大战游戏的设计与实现【文献综述】》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

毕业论文文献综述计算机科学与技术基于JAVA的坦克大战游戏的设计与实现摘要坦克大战(BattleCity)是一款经典休闲防御射击类游戏。游戏以坦克战斗及保卫基地为主题,属于策略型联机类。同时也是少有的内建关卡编辑器的几个游戏之一,玩家可自己创建独特的关卡,并通过获取一些道具使坦克和基地得到强化。本项目介绍了坦克大战的基本构建方法、java的相关技术及本程序的结构分析和具体功能的实现。重点运用了图形化用户界面GUI,Thread多线程的有关知识,其中涉及了绘图工具的运用,事件处理操作以及图形的碰撞检测等知识点。学会图形化用户界面的构建,通过启用多线程机制,将画面构造出来,使用双缓冲消除闪烁现象。使用键盘监听类KeyMonitor实现坦克的控制操作,实现坦克与障碍物之间的碰撞检测,利用容器类添加对象。关键词:基地射击关卡5 1.引言坦克大战是一款风靡全球的电视游戏机和掌上游戏机游戏。此游戏由于游戏简单、操作方便而备受大家青睐。游戏编程涉及图形[3]图像、实时输入获取、逻辑控制[4]、音乐音效编程、人工智能[5]等方面。不同于一般的图形应用程序,游戏图像对硬件有着严格甚至于苛刻的要求。游戏开发人员总是想着如何发挥现有的硬件的极限性能[6]以实现更华丽更逼真的游戏图形效果。这不仅需要硬件技术的发展支持,也要求游戏程序员在数据结构、图形算法领域不断地加以突破。经典的坦克大战游戏却是一个特例,它规则简单,所有人都比较熟悉,而且涉及到键盘控制、计分功能、内建关卡以及其他逻辑问题,是一个比较综合而相对难度不很大的游戏,很适合初学者学习计算机程序开发技术,锻炼自己的动手能力。2.游戏语言与工具开发任何软件,掌握一门编程语言是必不可少的。在某些应用程序中,总有一些计算机语言优于其他语言。下面是几种用于编写游戏的主要编程语言[7]的介绍及其优缺点。C/C++语言:实际上大部分游戏都是由C/C++语言编写的,C语言支持结构化编程,也就是说C的程序被编写成一些分离的函数呼叫(调用)的集合,这些呼叫是自上而下运行,而不像一个单独的集成块的代码使用GOTO语句控制流程。由于C是由汇编语言编写的,将C和汇编语言进行结合变得相当容易。函数调用接口非常简单,而且汇编语言指令还能内嵌到C代码中,所以,不需要连接独立的汇编模块。C++语言是具有面向对象特性的C语言的继承者。面向对象编程,或称OOP是结构化编程的下一步。OO程序由对象组成,其中的对象是数据和函数离散集合。有许多可用的对象库存在,这使得编程简单得只需要将一些程序“建筑材料”堆在一起(至少理论上是这样),组织大型程序的能力和程序移植性都比C语言好得多。汇编语言:最小、最快的语言。汇编高手能编写出比任何其他语言能实现的快得多的程序。确切的说,任何能在其他语言里做到的事情,汇编都能做,只是不那么简单—这是当然,就像既可以开车到某个地方,也可以走路去,只是难易之分。汇编语言的缺点也很明显:缺点:难学、语法晦涩、坚持效率,额外代码多,维护困难且移植性近于零。总的来说,汇编语言不会在游戏中单独应用。游戏使用汇编主要是来编写游戏核心中需要高速反复运行的部分。JAVA:一门紧凑而易学的语言,Java从C++中借用了大量的语法,丢弃了很多C++的复杂功能,。不像C++,Java强制面向对象编程,。自动分配资源配合垃圾回收[3]使得JAVA5 很容易实现不易崩溃且不会泄漏资源的可靠程序,程序也可以在网页中运行。JAVA的另一个优势就是移植性[4]非常好。JAVA的缺点是使用一个“虚拟机[8]”来运行可移植的字节码而非本地机器码,程序将比真正编译器慢。通过对几种语言的比较,我选择用Java[9]进行坦克大战的编写。重点运用了图形化用户界面GUI,Thread多线程的有关知识,其中涉及了绘图工具的运用,事件处理操作以及图形的碰撞检测[16]等知识点3.游戏系统简介坦克大战游戏是一款面向所有爱好射击类等的游戏迷所创建的游戏,打开游戏界面,游戏界面中有开始游戏、游戏帮助和退出游戏的选项。点击开始游戏即可开始玩,WASD控制方向,J为子弹,玩家控制主坦克的移动和炮弹的发射,将地方坦克全部消灭并保证己方基地不被打掉则视为玩家胜利,游戏中有超级武器和加血道具,靠玩家自己的摸索,游戏按键简单,易于操作。3.1游戏规则胜利条件:保护位于游戏界面中下部的我方基地,将20架敌方坦克击毁便可胜利,进入下一关。失败条件:我方坦克全灭或基地被毁。无论我方坦克残量几何,基地一旦被毁,游戏立刻CAMEOVER。4.游戏制作编程需求以一架坦克的大小为一格,每场战斗开始时,游戏的设置是在一个特定的场景中,玩家控制我方坦克,由游戏提供了让玩家坦克运行的方法和发射子弹的方法,消灭敌方坦克保护基地的一个游戏,游戏中敌方的坦克是由系统所控制的,能自动的随机发射出子弹。游戏功能要求如下:1.坦克移动需求:运用十字键进行畅快自如的移动,炮口方向与移动方向自动一致。移动的最小单位为1/2格,如果只消减了1/4的障碍物,就无法继续前进。2.地形需求:战场并不是一马平川,各种障碍物构成了复杂的地形,地形包括砖墙、森林、树木等,学会利用地形是坦克大战基础中的基础。3.攻击需求:一枚炮弹的攻击判定宽度为1格,强度为1/4格,也就是说,要击毁1格的红砖,需要发射四枚炮弹。当己方坦克火力处于1级时,同屏只能出现己方的一枚炮弹,合理的开炮是制胜的最有效的途径。4.胜利需求:保护我方基地,将所有敌方坦克击毁便可胜利。5 5.游戏主要类5.1构建坦克类(Tank类)创建一个坦克类,为Tank类添加成员变量,添加draw方法,使Tank类独立控制自己的画法,构造函数中创建使得每个坦克都拥有自己的一颗子弹,这些子弹将随着坦克自己的调动而调动。为区分敌我坦克,在类中创建了Goodtank和badtank来分别表示我方坦克和敌方坦克,以简化结构。5.2添加炮弹类(Missile类)添加Missile类,添加x,y,dir等属性以及常量。在Missile类当中添加构造方法,draw方法等必要方法。根据不同的方向,子弹要进行不同的运动。在Tank类当中增加对J键的按键处理,使每按下J键的时候,坦克打出一发炮弹。为了解决坦克停下来也能开火的问题——给坦克加一炮筒,根据炮筒方向和位置设定子弹的方向和位置并new出来,然后返回。5.3添加基地类(Headquarters类)建立Headquarters类,在Headquarters类中为基地添加红砖,当红砖中的Headquarters被打掉后游戏结束。让敌方坦克发射炮弹,本军坦克不打本军坦克,向炮弹添加表示好坏的Boolean量good。修改炮弹的构造方法;修改Tank的fire方法,坦克只能打击对方。5.4添加墙类(wall类)建立wall类,往里添加相应属性以及相应方法,当子弹接触到墙壁时,墙壁消失。在MainFrame类当中创建容器,将爆炸存放于容器当中,击毙一辆坦克就产生爆炸,将爆炸逐一画出(如果死去就去除)。5.5创建地图类(Map类)建立map类,在障碍物中添加元素,当子弹打到障碍物抵消掉时,随机有道具出现,创建Blood类添加血药箱,加入必要的属性和方法。当主站Tank与药箱接触的时候,血自动加满。添加容器类,用容器来装敌方坦克,可多辆装入。6.总结该游戏包括游戏场景(地图)的处理、双方作战对象(坦克和子弹)的生成、消减和控制,以及敌方坦克和子弹运行智能性的控制,实现了特定场景中的敌我双方坦克的对战,敌方坦克由系统控制,自动的发射子弹;我方坦克由玩家控制,系统为玩家提供控制坦克运行和子弹发射攻击的方法。该游戏软件具有一定的复杂性和可玩性。5 在该游戏的设计与实现过程中,不可避免的遇到一些技术方面的问题,比如对游戏地图加载技术、坦克间的检测碰撞技术等,这些问题的解决是本游戏的关键。当然,该游戏有待于进一步的提高,比如更大程度的提高敌方坦克智能化、游戏中添加宝物(物品),增加可玩性等等。参考文献[1]耿卫东,陈为.计算机游戏程序设计.电子工业出版社.2009.01[2]王鹏,何昀峰.JavaSwing图形界面开发与案例详解.清华大学出版社,2008.12[3]BruceEckel,Java编程思想[M].机械工业出版社,2003.10[4]吕建德.游戏程序设计概论.中国铁道出版社.2006[5]赵毅.跨平台程序设计语言——Java.西安电子科技大学出版社,2006.01[6]杨恩雄,麦凯翔.疯狂Java实战演义.电子工业出版社.2010.06[7]JonathanS.Harbour.Java5游戏编程.机械工业出版社,2007.01[8]赵强,乔新亮.J2EE应用开发[M].北京:电子工业出版社.2003.[9]陈东.编程常用设计模式.电子工业出版,2005.10[10][美]HerbertSchidt著.Java参考大全.鄢爱兰.鹿江春译.北京:清华大学出版社,2006[11]宛延闿等.实用Java程序设计教程.机械工业出版社,2006[12]张海藩.软件工程导论.清华大学出版社,2008.2[13]AndyBudd&CameronMoll&SimonCollison.CSSMastery:AdvancedWebStandardsSolutions.Apress,2006.10[14]HarveyM.Deitel.javahowtoprogram.PearsonEducation,2001.8[15]李尊朝,苏军.Java语言程序设计.中国铁道出版社,2006.1[16]邱郁惠.系统分析师UML实务手册.机械工业出版社,2008.04[17]陈轶.姚晓昆.Java程序设计实验指导.清华大学出版社,2006[18]邱郁惠.系统分析师UML实务手册.机械工业出版社,2008.045

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭