基于JAVA的坦克大战设计与实现代码.doc

上传人:h**** 文档编号:126863 上传时间:2018-07-09 格式:DOC 页数:208 大小:1.33MB
下载 相关 举报
基于JAVA的坦克大战设计与实现代码.doc_第1页
第1页 / 共208页
基于JAVA的坦克大战设计与实现代码.doc_第2页
第2页 / 共208页
基于JAVA的坦克大战设计与实现代码.doc_第3页
第3页 / 共208页
基于JAVA的坦克大战设计与实现代码.doc_第4页
第4页 / 共208页
基于JAVA的坦克大战设计与实现代码.doc_第5页
第5页 / 共208页
点击查看更多>>
资源描述

1、 JISHOU UNIVERSITY 本 科 生 毕业 设计 题 目: 基于 JAVA 的坦克大战设计与实现 作 者: 学 号: 所属学院: 专业年级: 指导教师: 职 称: 完成时间: 2012 年 5 月 7 日 吉首大学 I 基于 JAVA 的坦克大战设计与实现 摘 要 J2SE 是近年来随着各种不同技术的发展,尤其是编程语言飞速发展而诞生的一项新的开发语言。随着信息技术的飞速发展,计算机的使用也日渐普及,本文从 实际应用出发,向大家介绍坦克大战游戏的设计与实现。 本文所介绍的 坦克大战 游戏是 基于 JAVA 平台,用 Eclipse 开发 的 一款休闲类游戏 。 玩家可以 控制坦克

2、保护 自己的基地, 获取小道具, 歼灭 敌人坦克来获胜 。 论文中介绍了游戏的总体设计思路和开发游戏的多线程、低级图形界面的使用。本论文介绍了坦克大战的历史、 java 的相关技术及本程序的结构分析和具体功能的实现。 关键词 : JAVA 平台;游戏; 坦克大战;网络对战 The Design and Development of Tank Battle Based on JAVA Platform Abstract J2SE is in recent years with various technical development, especially the rapid developm

3、ent of programming language and the birth of a new development language. With the rapid development of information technology, the use of computers is also becoming increasingly common, in this paper, introduce the Tank Wars game design and implementation. This game is based on the JAVA platform, Ec

4、lipse developed a leisure game. Game player can control the tank to defend your base, to obtain small props, annihilating the enemy tanks to win. The paper introduced the game of the design idea and development of game of multithreading, low-level graphics interface use. This paper introduces the ta

5、nk war history, Java technology and the procedures for structural analysis and specific function of the realization of. Key words: JAVA; Game; Tank battle; Network war II 目 录 第一章 绪论 .1 1.1 开发背景 .1 1.2 国内外研究现状 .1 1.3 游戏设计目标 .2 第二章 相关技术 .2 2.1 开发环境 .2 2.2 JAVA 语言的特点 .2 2.3 关于 Eclipse .5 第三章 系统设计 .6 3.

6、1 系统可行性分析 .6 3.1.1 技术可行性 .6 3.1.2 经济可行性 .6 3.1.3 操作可行性 .6 3.2 系统需求分析 .6 3.2.1 单机模式下实现的功能 .6 3.2.2 网络对战模式下实现的功能 .7 3.3 系统总体设计 .7 3.3.1 坦克大战总体功能设计 .7 3.3.2 客户端 TankClient 设计 .7 3.3.3 坦克类设计 .8 3.3.4 子弹类设计 .9 3.3.5 地图类设计 .9 3.3.6 爆炸类设计 . 10 3.3.7 加载声音和图片类设计 . 10 3.3.8 网络对战模式设计 . 10 第四章 系统详细设计与现实 . 11 4.

7、1 系统类的介绍 . 11 4.2 单机模式 . 12 4.2.1 窗口创建 . 12 4.2.2 坦克的创建与移动 . 14 4.2.3 子弹的创建与飞行 . 17 4.2.4 敌人坦克的创建与 AI. 18 4.2.5 将敌人坦克击毙 . 20 4.2.6 击毙坦克时产生爆炸 . 21 4.2.7 加载地形 . 22 4.2.8 消除图片的重叠 . 25 4.2.9 加入小道具 . 26 4.2.10 加入声音 . 28 4.2.11 单机模式下的补充与修改 . 29 4.3 网络对战模式 . 30 4.3.1 服务端的建立 . 30 4.3.2 客 户端的建立 . 32 4.3.3 定义

8、消息发送的格式 . 35 4.3.4 网络模式下的补充与修改 . 36 III 第五章 软件测试 . 37 5.1 测试的基本概念 . 37 5.2 测试的任务和目的 . 37 5.2.1 测试的任务 . 37 5.2.2 测试的目的 . 37 5.2.3 系统测试 . 38 第六章 结束语 . 39 参考文献 . 40 附录 . 41 基于 JAVA的坦克大战设计与实 现 绪论 1 第一章 绪论 1.1 开发背景 如果要从精品云集的 FC 游戏中找一款经典之作,坦克大战绝对是 FC上所有经典中的经典,当年 NAMCO 的 Battle City在国内又称坦克大战,以其极为出色的游戏性令全球众

9、多玩家为之疯狂。 该游戏是一款以红白机为平台操作射 击游戏, 1-2 名玩家可控制自己的坦克进行移动和射击,以保护总部为前提,歼灭对方为胜利目标。每个关卡的地形不同,玩家可利用各种地形对敌人进行打击,并会得到补给。两人配合游戏时,第一关都有不一样的战术,以便能顺利完成关卡目标,对于玩家来说大大加强了游戏乐趣。其操作简单且娱乐性强,是一款男女老少皆宜的游戏。游戏中的众多经典关卡至今还让许多玩家记忆犹新,在 80年代时曾经在无数家庭中带来了无尽的欢乐。 JAVA 语言是当今最为流行的程序设计语言之一,作为非常优秀和极为健壮的编程语言,它同时有的面向对象,与平台无关,分布 式应用,安全,稳定和多线程

10、等优良的特征,使用 JAVA 语言,不仅可以开发出功能强大的大型应用程序,而且 JAVA语言本身突出的跨平台的特性也使得它特别适合于 Internet 上的应用开发,可以这样说, JAVA 的出现使得所开发的应用程序“一次编写,处处可用”的实现成为了可能 12。 1.2 国内外研究现状 从 1980 年第一款坦克大战游戏 Battle City 诞生至今已有 32 年的历史了,坦克大战也发展出了很多版本,从最初的红白游戏机到现在的网络游戏,从最开始只支持双人游戏到现在支持多人网络对战,从当初的平面 2D 到现在的立体 3D游戏,坦克大战趋势是网络化,立体化和多样化。 网络化的市场让游戏变成人和

11、人的交战,而不是人和电脑的对战,这样可以增加游戏的难度,游戏的时间和游戏的寿命。立体化是为了适应现在越来越 3D 的趋势,游戏有必要做的更加的完善,趋向 3D并且加重环境描写。多样化则是增加游戏的任务,游戏的耐玩性而在坦克大战里增加更多的内容加大其可玩性,比如:装备,对战方式,任务合作模式等等。可以想像,如果坦克大战还是人机基于 JAVA 的坦克大战设计与实 现 相关技术 2 对战的模式,并且协作性不提高的化,玩家对该游戏的选择性将大大降低,最终成为历史。 1.3 游戏设计目标 实现单机游戏和网 络对战连个部分。单机能支持两名玩家同时游戏,和 Battle City差不多,有各种地图,道具 ,

12、声音,爆炸效果 ;网络能多名玩家分为两边对战。 第二章 相关技术 2.1 开发环境 操作系统: Windows XP 32 位 开发工具: Eclipse 运行环境: JDK1.6 2.2 JAVA 语言的特点 (1)平台无关性 平台无关性是指 Java 能运行于不同的平台。 Java 引进虚拟机 原理,并运行于虚拟机,实现不同平台的 Java 接口之间。使用 Java 编写的程序能在世界范围内共享。Java 的数据类型与 机器无关, Java 虚拟机( Java Virtual Machine)是建立在硬件和操作系统之上,实现 Java 二进制代码的解释执行功能, 提供于不同平台的接口的5。

13、 (2)安全性 Java 的编程类似 C+,学习过 C+的读者将很快掌握 Java 的精髓。 Java 舍弃了 C+的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。 Java 对程序提供了安全管理器,防止程序的非法访问。 (3)面向对象 Java 吸取了 C+面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。类的封装性、继 承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。程序员只需把主要精力用在类和接口基于 JAVA 的坦克大战设计与实 现 相关技术 3 的设计和应用上。 Java 提供了众多

14、的一般对象的类,通过继承即可使用父类的方法。在 Java 中,类的继承关系是单一的非多重的,一个子类只有一个父类,子类的父类又有一个父类。 Java 提供的 Object 类及其子类的继承关系如同一棵倒立的树形,根类为 Object 类, Object 类功能强大,经常会使用到它及其它派生的子类 2。 (4)分布式 Java 建立在扩展 TCP/IP 网络平台上。库函数提供了用 HTTP 和 FTP 协 议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易 , 使用其相关技术可以十分方便的构建分布式应用系统 4。 (5)健壮性 Java 致力于检查程序在编译和运行时的错误

15、。类型检查帮助检查出许多开发早期出现的错误。 Java 自己操纵内存减少了内存出错的可能性。 Java 还实现了真数组,避免了覆盖数据的可能,这些功能特征大大提高了开发 Java 应用程序的周期。并且Java 还提供了 Null指针检测、数组边界检测、异常出口、 Byte code 校验等功能。Java 取消了 C 语言的结构、指针、 #define 语句、多重继承、 goto 语句、操作符、重载等不易被掌握的特性,提供垃圾收集器自动回收不用的内存空间 11。 (6)简单性 Java 删除了许多极少被使用、不容易理解和容易令人混淆的 C+功能。剔除的功能主要包括运算符重载、多重继承以及广泛的自

16、动强迫同型。与 C+相比, Java语言也提供重载函数,不过它重载的对象是函数而非变量或是运算符。 Java 还增加了自动内存收集功能,从而简化了 Java 程序的工作,不过同时也让系统变得稍微复杂了一些。 Java 的目标之一是要协助开发能独立地在小型机器上顺利执行 的软件。 Java 的基本解释器和对象类支持约占 40KB 空间,而若增加基本的标准程序库和线程支持则需增加约 175KB。体积小对于在嵌入式系统中的使用是很重要的,正因为这样,Java 才能够通过网络轻易下载。 (7)解释执行性 Java 解决器可以直接在任何已移植该解释器的机器上解释、执行 Java 字节代码。再者,由于其链

17、接过程比较倾向于逐步增量与轻量过程,因此程序开发更快、更精密。 (8)多线程性 Java 拥有一组复杂的同步化基本单元,它们是以广泛使用的 C.A.R.Hoare 监视器与条件变量图为基础的。将这些概念融合 到语言中之后,它们就变得更容易使用且更为健壮。这种融合方式大部分来自 Xerox 的 Cedar/Mesa 系统。 多线程所带来的其它好处包括更好的交互式回应能力与实时运行能力。然而这会受到底层平台的限制:独立执行的 Java 运行环境有着很好的实时执行能力,而若基于 JAVA 的坦克大战设计与实 现 相关技术 4 在其他系统例如 Unix、 Windows、 Macintosh 或 Wi

18、ndowsNT 等平台上执行时,则会由于底层平台的原因而使实时响应能力受到影响。 (9)动态特性 就各方面而言, Java 是一种比 C 或 C+更具动态特性的语言。它在设计上强调为不断发展的运算环境提 供支持。 Java 能了解由 Objective C 引用过来的接口概念。简单地说,接口就是规范一组与对象相对应的成员函数,但对象如何实现这些成员函数则亟待解决。一个类实现一个接口是要提供这个接口所包含的所有成员函数的实现,与此相反,派生子类则从父类继承了一组成员函数以及它们的实现。一个 Java类可以实行多个接口,但只能从一个父类继承。接口告诉连接对象它可以做什么而不是怎么做,使得它在代码上

19、更具有灵活性和可复用性。在 C 或 C+程序中,如果你有一个指针指向一个对象,但你不知道该对象的类型是什么,那么你将没有办法找出 它。然而,在 Java 中根据运行类型信息进行查找是很直截了当的,因为在编译阶段和运行阶段都会检查数据类型转换。所以你在 Java 中完全可以信任这种转换,而 C 与 C+的编译器则只是相信你自己已做了正确的处理。 (10)有关绘图的一些技术 Graphics 类提供了简单的 2D 绘图功能。它具有 24 位深度色彩的绘制能力,以三原色分别各占一个字节表示其颜色。程序只能在 paint()函数中使用 Graphics绘制,GameCanvas 可调用 getGrap

20、hics()函数直接绘制在缓冲区上,可以在任何时间请求传输到前台。其对象 会被传给 Canvas 的 paint()函数,以便最终显示 3。 在没有 MIDP2.0前,进行游戏绘图一般需要手动编程使用双缓冲。需要在 paint()方法内所想要画的图形画在一张预先准备好的背景,等所有绘图操作都完成后再将背景的数据拷贝到实际的屏幕上。 Image 类提供了一个建立背景的静态方法createImage(int width, int height),再利用 getGraphics()方法取得属于这个背景的Graphics 对象,所进行的绘图操作都会作用在背景上,等到全部的绘图操作完成后,再调用 dra

21、wImage()方法将背景的数据复制到实际显示的屏幕上。 这样的技术在绘制动画时特别有用。绘制动画时经常需要不断地更新画面,而更新画面的操作就是先将屏幕以 fillRect()的方式清除,再将下一张图片画在屏幕上,然而反复的清除及重绘会造成屏幕的闪烁现象( flicker),因此使用双重缓冲的好处就是在背景进行这个清除及重绘的操作,再将完成的绘图拷贝到屏幕上,由于用户看不到清除的操作,因此就不会出现闪烁的现象了。不过在某些 MIDP 的实现上已经加上了双重缓冲的支持,因此在处理前应先利用 Canvas 类的 isDoubleBuffer()方法来判断 9。 基于 JAVA 的坦克大战设计与实

22、现 相关技术 5 2.3 关于 Eclipse Eclipse 最初是由 IBM 公司开发的替代商业 软件 Visual Age for Java 的下一代IDE 开发环境, 2001 年 11 月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse 基金会( Eclipse Foundation)管理 10。 2003 年, Eclipse 3.0 选择 OSGi服务平台规范为运行时架构。 2007 年 6 月,稳定版 3.3 发布。 2008 年 6 月发布代号为 Ganymede 的 3.4 版。 2009 年 7 月发布代号为 GALILEO 的 3.5 版 。 2010 年 6

23、 月发布代号为 Helios 的 3.6 版。 Eclipse 是著名的跨平台的自由 集成开发环境 ( IDE)。最初主要用来 Java 语 言开发,但是目前亦有人通过插件使其作为其他计算机语言比如 C+和 Python 的开发工具。 Eclipse 的本身只是一个框架平台,但是众多插件的支持使得 Eclipse 拥有其他功能相对固定的 IDE 软件很难具有的灵活性。许多软件开发商以 Eclipse 为框架开发自己的 IDE。 Eclipse 最初由 OTI 和 IBM 两家公司的 IDE 产品开发组创建,起始于 1999 年4 月。 IBM 提供了最初的 Eclipse 代码基础,包括 Pl

24、atform、 JDT 和 PDE。目前由IBM 牵头,围绕着 Eclipse 项目已经发展成为了一个庞大的 Eclipse 联盟,有 150 多家软件公司参与到 Eclipse 项目中,其中包括 Borland、 Rational Software、 Red Hat及 Sybase 等。 Eclipse 是一个开发源码项目,它其实是 Visual Age for Java 的替代品,其界面跟先前的 Visual Age for Java 差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因 此越来越受人们关注。近期还有包括Oracle 在内的许多大公司也纷纷加入

25、了该项目,并宣称 Eclipse 将来能成为可进行任何语言开发的 IDE 集大成者,使用者只需下载各种语言的插件即可。 虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用,但 Eclipse 的目标不仅限于此。 Eclipse 还包括插件开发环境( Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的 工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员

26、都具有同等的发挥场所 6。 基于 Eclipse 的 应用 程序 的突出例子是 IBM 的 WebSphereStudioWorkbench,它构成了 IBM Java 开发工具系列的基础。例如, WebSphere Studio Application Developer 添加了对 JSP、 servlet、 EJB、 XML、 Web 服务和 数据库 访问的支持。基于 JAVA的坦克大战设计与实 现 系统设计 6 第三章 系统设计 3.1 系统可行性分析 3.1.1 技术可行性 Java 语言自 Sum公司于 1995 年 5 月正式发布以来,经历了出生、成长、 成 熟壮大的几个阶段 ,逐

27、渐发展为 IT 领域里的主流语言,使用 Java 开发工具方便,容易实现。 Java 对开发网络产品有他自己独特的优势,网络游戏也是其开发产物之一。本系统开发过程是利用 Java 编程语言和 Eclipse 集成开发环境配合使用来实现的,他是基于 TCP/UDP 协议和 Socket 通信技术,建立 C/S 结构模式的娱乐游戏。 3.1.2 经济可行性 本设计的开发是基于 JDK1.6 和 Eclipse 的,因为他们都是免费且开源的软件,使用的图片素材 为网上共享的资源, 所以实现成本可以忽略不计。 3.1.3 操作可行性 本设计是一个小游戏,只是模拟了坦克大战的部分功能,坦克大战操作容易,玩家不需要了解复杂的操作流程,只是和一般小游戏一样操作即可 。整个系统的开发是基于 JDK 和 Eclipse 的,没有跟多的工具和服务器支持。 3.2 系统需求分析 3.2.1 单机模式下实现的 功能 (1)能够用键盘控制坦克移动,并发射炮弹; (2)能绘画出各种地形的地图; (3)敌人坦克能够自动移动和射击; (4)能产生爆炸效果; (5)有声音效果 ; (6)有些小道具;

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。