基于java的坦克大战游戏开发论文.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《基于java的坦克大战游戏开发论文.doc》由会员分享,可在线阅读,更多相关《基于java的坦克大战游戏开发论文.doc(55页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、 南 京 工 程 学 院毕业设计说明书(论文)作 者: 超人 学 号: 1 院 系: 康尼学院 专 业: 计算机科学与技术 题 目: 基于java的坦克大战游戏开发 指导者: 实验师 (姓 名) (专业技术职务)评阅者: 讲师 (姓 名) (专业技术职务) 2009 年 6 月 南 京毕业设计说明书(论文)中文摘要J2SE是近年来随着各种不同技术的发展,尤其是编程语言飞速发展而诞生的一项新的开发语言。随着信息技术的飞速发展,计算机的使用也日渐普及,本文从实际应用出发,向大家介绍坦克大战游戏的设计与实现。Eclipse平台模拟器开发调试。玩家坦克的运行是通过键盘响应事件控制,敌方坦克则是自动运行
2、并具有了一定的智能性。程序进行了精简和优化,游戏运行流畅,具有一定的吸引力。论文中介绍了游戏的总体设计思路和开发游戏的多线程、高级、低级图形界面的使用。本论文介绍了坦克大战的历史、java的相关技术及本程序的结构分析和具体功能的实现。游戏是在Eclipse环境下编程。它的主要功能有:能够四处移动、能够发射子弹打击敌人、敌人能够移动、 能够模拟爆炸、能够产生障碍、能够增长生命。关键词 游戏 Java 坦克 智能毕业设计说明书(论文)外文摘要Title Java Tank War Game DevelopmentAbstractJ2SE is a kind of fast developing t
3、echnology implemented on various devices especially equipments.With the rapid development of information technology, computer use has become more popular, the practical application of this paper to introduce the design and implementation of the game Battle City .It transports the classical product t
4、o computer, offering corresponding software for such more popular hardware platform. Eclipse platform simulator. The players tank is controlled by keyboard response events, while the enemys tank is operated automatically and is of intelligence. Having been streamlined and optimized, the game system
5、can run fluently and attract the players.This paper describes the history of Battle City, java related technologies and the procedures of structural analysis and the realization of specific functions. Game programming environment in Eclipse. Its main features are: to move around. capable of firing b
6、ullets against enemy. the enemy can move. to simulate the explosion. to create an obstacle. to increase the life Key words game,Java,tank,Smart目 录前言1第一章 系统开发环境介绍21.1 开发环境21.2 Java语言的特点21.3 关于Eclipse6第二章 软件需求分析82.1 可行性分析82.2 游戏规则和系统功能介绍82.3 程序运行流程9第三章 系统总体设计123.1 主体模块123.2 子弹模块123.3 坦克模块133.4 墙模块133.
7、5 血液模块143.6 爆炸模块14第四章 系统详细设计与实现164.1 游戏窗口与我方坦克164.2 子弹与一辆敌人坦克224.3 爆炸与多辆敌人坦克274.4 墙、坦克互相穿越、超级炮弹和生命值304.5 血块与加入图片33第五章 坦克大战打炮弹功能系统测试365.1 抬CTRL打炮弹的测试要点365.2 坦克大战系统采用的测试方法365.3 功能测试用例36结 论38参考文献39致谢40附录:英文技术资料翻译41前 言如果要从精品云集的FC游戏中找一款经典之作,坦克大战绝对是FC上所有经典中的经典,当年NAMCO的Battle City在国内又称坦克大战,以其极为出色的游戏性令全球众多玩
8、家为之疯狂。该游戏是一款以红白机为平台操作射击游戏,1名玩家可控制自己的坦克进行移动和射击,歼灭对方为胜利目标。每个关卡的地形不同,玩家可利用各种地形对敌人进行打击,并会得到补给。其操作简单且娱乐性强,是一款男女老少皆宜的游戏。游戏附带地图编辑器,玩家可自行编辑地图进行游戏。游戏中的众多经典关卡至今还让许多玩家记忆犹新,在80年代时曾经在无数家庭中带来了无尽的欢乐。JAVA语言是当今最为流行的程序设计语言之一,作为非常优秀和极为健壮的编程语言,它同时有的面向对象,与平台无关,分布式应用,安全,稳定和多线程等优良的特征,使用JAVA语言,不仅可以开发出功能强大的大型应用程序,而且JAVA语言本身
9、突出的跨平台的特性也使得它特别适合于Internet上的应用开发,可以这样说,JAVA的出现使得所开发的应用程序“一次编写,处处可用”的实现成为了可能。网络化的市场让游戏变成人和人的交战,而不是人和电脑的对战,这样可以增加游戏的难度,游戏的时间和游戏的寿命。立体化是为了适应现在越来越3D的趋势,游戏有必要做的更加的完善,趋向3D并且加重环境描写。多样化则是增加游戏的任务,游戏的耐玩性而在坦克大战里增加更多的内容加大其可玩性,比如:装备,对战方式,任务合作模式等等。可以想像,如果坦克大战还是人机对战的模式,并且协作性不提高的化,玩家对该游戏的选择性将大大降低,最终成为历史。本课题就是想对该游戏进
10、行分析研究,借助于它的游戏规则,用JAVA语言模拟开发一个类似的,功能相对简单的小游戏。第一章 系统开发环境介绍1.1 开发环境操作系统:Microsoft Windows 7程序语言:Java 开发工具:Eclipse1.2 Java语言的特点1)平台无关性平台无关性是指Java能运行于不同的平台。Java引进虚拟机 原理,并运行于虚拟机,实现不同平台的Java接口之间。使用Java编写的程序能在世界范围内共享。Java的数据类型与 机器无关,Java虚拟机(Java Virtual Machine)是建立在硬件和操作系统之上,实现Java二进制代码的解释执行功能, 提供于不同平台的接口的。
11、2)安全性Java的编程类似C+,学习过C+的读者将很快掌握Java的精髓。Java舍弃了C+的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。Java对程序提供了安全管理器,防止程序的非法访问。3)面向对象Java吸取了C+面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。程序员只需把主要精力用在类和接口的设计和应用上。Java提供了众多的一般对象的类,通过继承即可使用父类的方法。在Java中,类的继承关系是单一的非多重的,一个子类
12、只有一个父类,子类的父类又有一个父类。Java提供的Object类及其子类的继承关系如同一棵倒立的树形,根类为Object类,Object类功能强大,经常会使用到它及其它派生的子类。4)分布式Java建立在扩展TCP/IP网络平台上。库函数提供了用 和FTP协议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易, 使用其相关技术可以十分方便的构建分布式应用系统。 5)健壮性Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自己操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能,这些功能特征大大提高了开发
13、Java应用程序的周期。并且Java还提供了Null指针检测、数组边界检测、异常出口、Byte code校验等功能。Java取消了C语言的结构、指针、#define语句、多重继承、goto语句、操作符、重载等不易被掌握的特性,提供垃圾收集器自动回收不用的内存空间。6)简单性Java删除了许多极少被使用、不容易理解和容易令人混淆的C+功能。剔除的功能主要包括运算符重载、多重继承以及广泛的自动强迫同型。与C+相比,Java语言也提供重载函数,不过它重载的对象是函数而非变量或是运算符。Java还增加了自动内存收集功能,从而简化了Java程序的工作,不过同时也让系统变得稍微复杂了一些。Java的目标之
14、一是要协助开发能独立地在小型机器上顺利执行的软件。Java的基本解释器和对象类支持约占40KB空间,而若增加基本的标准程序库和线程支持则需增加约175KB。体积小对于在嵌入式系统中的使用是很重要的,正因为这样,Java才能够通过网络轻易下载。7)中立性Java的设计目标是要支持网络应用程序。一般而言,网络是由许多不同的平台系统构成,包括各种CPU与操作系统结构。为了让Java应用程序能够在网络上任何地方执行,其编译器将会生成一种具备结构中立性的目标文件格式。编译后的程序码可以在提供Java运行系统的多种不同处理器上面执行。Java的这种中立性结构不仅对网络应用很有帮助,而且也很适合单一的系统软
15、件流通。Java编译器是通过生成与某一特定电脑结构无关的字节代码指令,以达到上述功能的。这些字节代码指令能很容易在任何机器上解释执行。结构中立性是确保程序可移植的最重要部份,不过除此之外还需很多必须配合的条件和C与C+不同的是,Java规范中并无任何与机器结构相依存的陈述存在。它指定了基本数据类型的大小,及其算术运算元的执行行为。例如:“int”代表一个有符号的二进制补码32Bit整数,而“float”代表一个32BitIEEE754浮点数。这些选择在今天的环境很适用,因为几乎所有CPU都具备这些特性。程序运行库属于系统的一部份,它定义了一些可移植的程序接口。例如,它包括一个抽象的Window
16、s类,并且提供了该类在Unix、Windows和Macintosh平台上的实现。8)解释执行性Java解决器可以直接在任何已移植该解释器的机器上解释、执行Java字节代码。再者,由于其链接过程比较倾向于逐步增量与轻量过程,因此程序开发更快、更精密。9)高效能性虽然解决过的字节代码性能已相当不错,不过有些情形下还是要求程序达到更高执行效能。字节代码可以动态地解释为执行应用程序特定CPU的机器码。这对于习惯使用一般编译器与动态载人器的程序设计者而言,有点类似将最终的机器码生成器放到动态载入器之内。字节代码格式在设计上即已考虑了机器码的产生,因此实际的机器码生成程序相当简单。其生成的机器码是有效的,
17、编译器自动分配寄存器,而在生成字节代码期间也会进行一些优化。我们以解决码在一台Sun Microsystem SPARC Station10上执行时,达到每秒三十万个函数调用速率。字节代码转换至机器码的速度性能,几乎和直接生成机器目标代码的C或C+没有什么两样。10)多线程性Java拥有一组复杂的同步化基本单元,它们是以广泛使用的C.A.R.Hoare监视器与条件变量图为基础的。将这些概念融合到语言中之后,它们就变得更容易使用且更为健壮。这种融合方式大部分来自Xerox的Cedar/Mesa系统。多线程所带来的其它好处包括更好的交互式回应能力与实时运行能力。然而这会受到底层平台的限制:独立执行
18、的Java运行环境有着很好的实时执行能力,而若在其他系统例如Unix、Windows、Macintosh或WindowsNT等平台上执行时,则会由于底层平台的原因而使实时响应能力受到影响。11)动态特性就各方面而言,Java是一种比C或C+更具动态特性的语言。它在设计上强调为不断发展的运算环境提供支持。 Java能了解由Objective C引用过来的接口概念。简单地说,接口就是规范一组与对象相对应的成员函数,但对象如何实现这些成员函数则亟待解决。一个类实现一个接口是要提供这个接口所包含的所有成员函数的实现,与此相反,派生子类则从父类继承了一组成员函数以及它们的实现。一个Java类可以实行多个
19、接口,但只能从一个父类继承。接口告诉连接对象它可以做什么而不是怎么做,使得它在代码上更具有灵活性和可复用性。在C或C+程序中,如果你有一个指针指向一个对象,但你不知道该对象的类型是什么,那么你将没有办法找出它。然而,在Java中根据运行类型信息进行查找是很直截了当的,因为在编译阶段和运行阶段都会检查数据类型转换。所以你在Java中完全可以信任这种转换,而C与C+的编译器则只是相信你自己已做了正确的处理。12)有关绘图的一些技术Graphics类提供了简单的2D绘图功能。它具有24位深度色彩的绘制能力,以三原色分别各占一个字节表示其颜色。程序只能在paint()函数中使用Graphics绘制,G
20、ameCanvas可调用getGraphics()函数直接绘制在缓冲区上,可以在任何时间请求传输到前台。其对象会被传给Canvas的paint()函数,以便最终显示。在没有MIDP2.0前,进行游戏绘图一般需要手动编程使用双缓冲。需要在paint()方法内所想要画的图形画在一张预先准备好的背景,等所有绘图操作都完成后再将背景的数据拷贝到实际的屏幕上。Image类提供了一个建立背景的静态方法createImage(int width, int height),再利用getGraphics()方法取得属于这个背景的Graphics对象,所进行的绘图操作都会作用在背景上,等到全部的绘图操作完成后,再
21、调用drawImage()方法将背景的数据复制到实际显示的屏幕上。这样的技术在绘制动画时特别有用。绘制动画时经常需要不断地更新画面,而更新画面的操作就是先将屏幕以fillRect()的方式清除,再将下一张图片画在屏幕上,然而反复的清除及重绘会造成屏幕的闪烁现象(flicker),因此使用双重缓冲的好处就是在背景进行这个清除及重绘的操作,再将完成的绘图拷贝到屏幕上,由于用户看不到清除的操作,因此就不会出现闪烁的现象了。不过在某些MIDP的实现上已经加上了双重缓冲的支持,因此在处理前应先利用Canvas类的isDoubleBuffer()方法来判断。1.3 关于EclipseEclipse最初是由
22、IBM公司开发的替代商业软件Visual Age for Java的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(Eclipse Foundation)管理。 2003年,Eclipse 3.0选择OSGi服务平台规范为运行时架构。 2007年6月,稳定版3.3发布。2008年6月发布代号为Ganymede的3.4版。2009年7月发布代号为GALILEO的3.5版。2010年6月发布代号为Helios的3.6版。Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 java 坦克 大战 游戏 开发 论文
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内