《Java版坦克大战游戏毕业设计》由会员分享,可在线阅读,更多相关《Java版坦克大战游戏毕业设计(30页珍藏版)》请在金锄头文库上搜索。
1、1 引言11 开发背景 随着人们精神文化生活的日益丰富,为了让我们在闲暇的时间多方面发展个人的兴趣爱好,为了更好地开发个人智力,游戏成为人们生活中不可缺少的一部分。游戏产业促动高科技技术不断升级,作为经济增长的一大支撑点,已经成为经济腾飞的“第四产业”。作为休闲游戏的起源应该追溯到早期的俄罗斯方块和坦克大战,坦克大战是童年经常玩的游戏,也是一款经典游戏。坦克大战游戏几乎家喻户晓,对我们80后90后而言,是童年最珍贵的回忆。此款游戏是一款以红白机为平台操作射击游戏1,玩家可以控制自己的坦克,以歼灭对方的坦克,其操作方式及其简单,是一款男女老少皆宜的游戏。为了满足人们的个性化需求,使玩家在游戏的过
2、程中,更能体验游戏本身的乐趣,也为了满足更好的用户体验,市场上逐渐出现了墨水坦克大战2,它是经典坦克大战的姊妹游戏,只有手机版,没有PC版,所以决定在自己大学毕业之时,开发一个PC版的墨水坦克大战。12 国内外单机游戏的研究现状近年来,由于经济的迅速发展,科技日新月异的变化,越来越多的人会把电脑作为一种娱乐工具,而不仅仅是用它来工作,单机游戏又凭借自身操作简单,价格低廉,对电脑的配置要求低,有利于各个阶层各个行业人士使用,并且有益于身心健康,在琳琅满目的游戏中脱颖而出。但是,对于我国国内单机游戏而言,还处于起步阶段,有着较大的商业潜力,但是也存在着正版维护意识不强,从而使得盗版有机可乘,影响市
3、场的健全发展,还需要得到进一步的更健全的发展3。13 研究意义单机游戏由于其不必联入互联网也可以进行游戏,从而摆脱了很多限制,只要有一台电脑即可体验游戏带来的欢乐,现在许多的单机游戏都是精工细致而成的,更能呈现出友好的界面,流畅的画面,悦耳的背景音乐,良好的游戏性。墨水坦克大战只有手机版,使得手机屏幕小或者配置低的用户很难体验到墨水坦克大战的妙趣横生,开发PC版的墨水坦克大战势在必行。开发这一游戏,不仅能够满足更多人的需要,同时,通过开发这一完整项目,使得自己能更好的巩固大学所学的知识,使理论与实践相结合,增强动手能力,进一步了解软件开发的流程,并且在这一过程中提升自己的编程能力。在遇到问题的
4、时候,通过查阅资料,自己解决,或者请教老师,增强了自学的能力,增加了师生的感情。这一项目是俩人合作完成的,除了能学习到技术方面的知识,我也深刻的体会到合作的重要意义。这也使得这次毕业设计有很重要的意义。2 开发环境及相关技术的介绍2.1 开发环境此系统是在Microsoft Windows 7操作系统下完成的,用Java语言编写的,用Eclipse工具开发的。2.2 Java语言的特点 Java是Sun公司推出的新一代面向对象程序设计语言4。 首先,作为一种程序设计语言,它简单、面向对象、不依赖于机器的结构、具有可移植性鲁棒性、安全性、并且提供了并发机制、具有很高的性能。其次,它最大限度地利用
5、了网Java的小应用程序(Applet)可在网络上运行而不受CPU和环境的限制。另外,Java还提供了丰富的类库,使程序设计者可以很方便地利用已有的封装好的类,迅速的建立自己的系统5。1简单性 Java语言是一种比C+还面向对象的编程语言,Java略去了运算符重载、多重继承等模糊的概念,并且通过实现自动垃圾回收,大大简化了程序设计者的内存管理工作6。Java抛弃了指针的概念。由于java拥有着这些新特性,使得开发人员更容易写出“无错代码”。2面向对象 在很多面向对象的语言里,Java才是一门纯粹的面向对象语言,Java中面向对象的思想主要体现在三大特点,即封装,继承和多态7。它提供了简单的类机
6、制以及动态的接口模型。对象中封装了它的属性以及对应的方法行为,实现了模块化和信息隐藏,而类则提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,大大的提高了代码的复用率。3健壮性 一门语言的健壮性就体现在它对常见错误的预防能力,Java语言就很好的体现了这一点8。Java在编译和运行程序时,都要对可能出现的问题进行检查,以消除错误的产生。它提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。 4安全性 网络的快速发展,给人们的生活工作带来了很大的便利,但是于此同时,使得用户的信息不再透明化。Java对指针进行了屏蔽,从而不能直接对内存进行操作,进而大大的提高
7、了内存的安全性9。 5解释性 Java解释器生成与体系结构无关的字节码指令只要安装了Java运行时系统,Java程序就可在任意的处理器上运行。这些字节码指令对应于Java虚拟机中的表示,Java解释器得到字节码后,对它进行转换使之能够在不同的平台运行10。 Java除了具有以上一些优点外,还有分布式、可移植性、多线程以及动态性。 2.3 关于EclipseEclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境11。幸运的是Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Develop
8、ment Tools ,JDT )。 Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。 这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言,例如,支持诸如 C/C+、COBOL
9、和 Eiffel 等编程语言的插件已经可用或将来会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础。 Eclipse最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的Eclipse代码基础,包括Platform、JDT和PDE12。目前由IBM牵头,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、Rational Software、Red Hat及Sybase等。 由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,
10、因此越来越受人们关注。近期,还有包括Oracle在内的许多大公司也纷纷加入了该项目,并宣称Eclipse将来能成为可进行任何语言开发的IDE集大成者,使用者只需下载各种语言的插件即可。2.4 GUI技术简介图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。Java的图形用户界面由各种组件(component)构成,在java.awt包和javax.swing包中定义了多种用于创建图形界面的组件类。GUI 是一种结合计算机科学、美学、心理学、行为学,及各商业领域需求分析的人机系统工程,强调人机环境三者作为一个
11、系统进行总体设计。这种面向客户的系统工程设计其目的是优化产品的性能,使操作更人性化,减轻使用者的认知负担,使其更适合用户的操作需求,直接提升产品的市场竞争力。GUI即人机交互图形化用户界面设计。纵观国际相关产业在图形化用户界面设计方面的发展现状,许多国际知名公司早已意识到GUI在产品方面产生的强大增值功能,以及带动的巨大市场价值,因此在公司内部设立了相关部门专门从事 GUI的研究与设计,同业间也成立了若干机构,以互相交流GUI设计理论与经验为目的。随着中国IT产业,移动通讯产业,家电产业的迅猛发展,在产品的人机交互界面设计水平发展上日显滞后,这对于提高产业综合素质,提升与国际同等业者的竞争能力
12、等等方面无疑起了制约的作用。GUI的广泛应用是当今计算机发展的重大成就之一,他极大地方便了非专业用户的使用。人们从此不再需要死记硬背大量的命令,取而代之的是可以通过窗口、菜单、按键等方式来方便地进行操作。而嵌入式GUI具有下面几个方面的基本要求:轻型、占用资源少、高性能、高可靠性、便于移植、可配置等特点。2.5 本章小结本章介绍了Java语言的特点、本程序的开发环境及其相关的开发工具的原理和使用。3 系统设计及相关的技术3.1 系统可行性分析3.1.1 技术可行性本系统采用Java语言编写,它是一种简单的,面向对象的编程语言,具有多线程,分布式,跨平台等特性。它有自己的安全机制,并且移植性很好
13、。Java语言对开发网络产品有其独特的优势,本系统开发过程是利用Java编程语言和Eclipse集成开发环境配合使用来实现的。界面主要是通过使用GUI的知识,核心功能主要运用了Java的基本知识,其中涉及到了线程方面的知识。另外,此系统对开发环境的要求,都是大部分Java程序员进行软件开发使用的开发环境,所以技术方面也是可行的。3.1.2 经济可行性本设计的开发是基于JDK1.7和Eclipse的,因为他们都是免费且开源的软件,只需要下载安装即可,使用的图片素材和音效素材都是网上共享的资源,该系统对操作环境没有太多要求,系统的开发不需要很强的经济支持,无需要投入太多的人力、物力,从而开发所需要
14、的资金投入也不会很大,所以实现此需求的成本可以忽略不计。3.1.3 操作可行性 本设计是一个大家都熟悉的游戏,模拟了坦克大战的常用功能,加入敌我双方坦克,加入子弹并可以打出子弹,产生爆炸效果等一系列功能,并且加入了自己的独特元素涂鸦风格,坦克大战的操作容易,玩家不需要了解复杂的操作流程,只要有一台电脑,可以不用网络,用户就可以体验此款游戏,使得其适合用户体验,成为一款老少皆宜的游戏。3.2 系统需求分析3.2.1 单机模式下实现的功能(1)玩家可以通过键盘控制坦克的移动,并可以通过按键发射炮弹,包括普通炮弹和超级炮弹;(2)敌人坦克能够自由移动和射击;(4)能产生爆炸效果;(5)有声音效果;(
15、6)有些小道具,如血瓶,通过它可以增加血条;(7)游戏的开始界面,菜单界面,游戏界面以及游戏结束界面要美观友好。(8)能保存玩家的游戏数据;(9)玩家可以查看排行榜信息;3.2.2 用况建模游戏中敌我双方坦克都可以完成射击动作,并且都可以移动,自己的坦克是通过键盘的方向键控制坦克的运动,敌人的坦克是随机运动的。屏幕上的敌方坦克数量较多,所以需要为敌方的每一辆坦克开辟一个独立的线程,以便使其独立运行。Java的多线程能力实现这样的游戏成为了可能。此游戏的用例图如图3.1所示:添加障碍物移动射击我方坦克射击敌方坦克射击敌方坦克我方坦克 图3.1 游戏用例图3.3 程序运行流程3.3.1 程序中炮弹的运行流程炮弹是一个单独的类,它拥有一个很重要的变量isGood,它标识了该子弹是我方的还是敌方的,这样可以控制子弹在脱离了坦克后的运行状态中的行为。击中墙时,子弹的生命就结束,不再继续画。如果没有击中物体,就继续监测是否击中了坦克,这根据子弹的来源分为两种情况,来自我方时,监测是否与敌人进行了碰撞