坦克大战游戏的改进设计.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)
《坦克大战游戏的改进设计.doc》由会员分享,可在线阅读,更多相关《坦克大战游戏的改进设计.doc(39页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、 坦克大战游戏的改进设计目 录摘要1ABSTRACT2第1章绪论31.1项目背景31.1.1 国背景31.1.2 国外背景41.2项目来源51.3设计游戏的必备知识51.3.1 JAVA语言程序设计的基本知识点51.3.2 JAVA语言的特性7第2章需求分析82.1系统需求分析82.2用况建模92.3活动建模102.4开发环境102.5 J2ME概况与应用112.5.1 JAVA平台的四个版本112.6 本章小结11第3章游戏设计133.1 游戏结构设计133.2数据结构设计143.3算法设计153.4 本章小结23第4章游戏详细设计244.1 游戏功能设计244.2类模型254.3 玩家坦克
2、的功能属性264.4 敌人坦克的功能属性264.5子弹的运行和控制274.6 坦克的控制和敌方的智能运行284.7 本章小结30第5章游戏实现315.1游戏规则与运行界面315.1.1 游戏步骤315.1.2 操作315.1.3 游戏规则与运行界面315.2本章小结36第6章本游戏中关键技术和要改进的地方376.1 有关绘图的关键技术376.2 GRAPHICS类376.3 文件系统376.4利用缓冲技术消除闪烁现象386.5本程序要改进的地方396.6本章总结40第7章总结417.1 本程序的总结417.2 经验和感想41参考文献4239 / 39第1章 绪论1.1项目背景1.1.1 国背景
3、早期的游戏不能被广泛承受最主要的就是该引擎没有具备广泛的硬件支持幅度,不能够自上而下充分发挥各等级硬件的运算资源。目前PC游戏销量萎靡(相对于游戏机)的主要病根之一就是PC平台不同等级的硬件性能相差甚巨,而大部分PC游戏对不同级别的硬件支持围又不够广,所以往往要么是配置需求过高,要么就是画质跟不上时代,导致玩家承受面小而严重影响销量。而过去暴雪的游戏之所以能够赢得如此庞大的玩家追捧,除了作品本身的优秀质量以外,相对较广的硬件支持同样功不可没。能够很好兼顾当时高配置下的优秀画质以与低端配置下同样能够提供流畅的游戏体验而闻名。国大多数玩家接触的坦克大战,都是经傅瓒改造后的版本,经典坦克游戏的编程:
4、原版坦克大战一共35关,玩家的任务是保住己方司令部,并消灭敌方20辆坦克。傅瓒对原版的地图和参数进行修改,增加了一系列新关卡,这就是最早的“烟山版”坦克大战坦克7(进入游戏后有“TANK A”至“TANK G”七个选项,因此得名)。之后他又陆续制作了坦克14、坦克28、89坦克和90坦克等版本,加入了敌方坦克吃宝物、双打时互借坦克等功能,以与水陆两用坦克(可渡河的船)和火焰喷射器(可削草的手枪)等宝物,这些容都是原版没有的。作为这一系列的集大成者,90坦克是其中流传最广的一款。其辨识方法也很简单,90坦克在B3、B5、B6和B7四版的地图上,分别有“”、“烟山”、“软件”和“542408”()
5、的字样,这大约是国最早的游戏置广告。凭借“坦克”系列,烟山软件的营业额再次翻番,1989年突破200万元,又推出了导弹坦克。导弹坦克已不再满足于对地图和参数的简单编辑,还对游戏程序做了修改,增加了发射导弹、加固工事等新玩法。玩家发射的导弹可以越过地图上的所有障碍,还可以转弯;导弹用完后,玩家可以用A键加固工事或设置路障,将坦克开到砖或石头前,按A键举起砖石,到需要加固或设置路障的地方,再按A键放下。导弹坦克,连同烟山软件汉化的烟山杯围棋、中文麻将和中国象棋等另外三款游戏,被制作成四合一卡带,这盘卡带的母片(未加密的芯片)后来被卖给了一家公司,这也使烟山软件无意间成为了国第一家“进军海外”的游戏
6、公司。1.1.2 国外背景FC(Family Computer)主机在欧美又称Nintendo Entertainment System(可译作任天堂娱乐平台即NES)。FC主机在游戏业界造成的巨大冲击众所周知,这款主机在当时事实上几乎占领了世界各地多个国家的整个游戏市场,并使得逐渐没落的北美游戏市场再度复苏。这款主机的性能比当时的多数主机都要强大,而价格上却便宜得多。主机所采用得处理器为CMOS 6502,一款已经淘汰的70年代中期产品。由于其价格便宜且极易使用,经过任天堂的改造后又焕发了全新活力。6502 芯片 主频为8 bit,12 MHz,存8k,画面 52色,同屏最多显示其中的13色
7、,声音2个矩波,1个三角波,1个杂音,1个PCM音频(见图1-1)。 Battle City是其发售卡带中的一款力作,设置了35个关卡,可以双人操纵,画面设置了若干种类的建筑物和阻挡物,以消灭所有敌人为通关条件,并有接宝物等增加游戏效果的设置,画面精美,音效杰出,在PC机的80386处理器仍未面世的当时,能在硬件上运行这样的2D程序不得不令人惊叹,难怪常有人说游戏程序是最大限度发挥硬件水平的载体。其游戏界面如图1-2所示。图1-2Battle City的界面图1-1 80年代中期的FC机器早期的游戏难免粗陋和简单,因为现在发展太快的游戏行业正缺少了那些让我们初次就爱上的游戏。还有技术性封闭测试
8、主要是以测试版本稳定性为主,测试期间可能出现各类技术问题。暴雪这种精益求精的公司,实际上游戏开发人员的第一个部开发版本就因为画风太过于类似魔兽而被彻底推翻重来,而如今面对这个十年磨一剑的续作,我们不难猜想暴雪对其重视程度已经达到呕心沥血的程度!这款继承经典的游戏,给国人重铸的玩家带来网游的新天地。所以玩家全心关注,官网急速启动,研发部门日夜奋斗,只为一个目标:在第一时间开启坦克大战这款世纪经典游戏的网游增强版。其中坦克与技能卡都能得到升级的机会,经过强化与改造,能让一辆坦克产生翻天覆地的变化。纵观IT产业的历史,就像军事的发展时常推动计算机的演化一样,计算机游戏已经成为技术创新背后的动力之一。
9、计算机游戏者渴望更加强大的硬件计算能力;渴望不受不同的软件的限制无论是将图形强制在人工智能(AI)上 还是网络安全性上。游戏开发者和玩家常常是前沿计算机技术的最早的采用者。由于他们的创新天性,游戏不再是由大型采购公司控制的技术产品游戏领域总是有充足的空间给那些在这方面有天分的单个创新者。1.2项目来源进入21世纪,社会竞争日趋激烈,同时人们的生活压力日益增大,为了在紧的社会环境给人们带来休闲的快乐,各大游戏公司相继开发种种其乐无穷的游戏。其中坦克大战就是其中的一款。坦克大战早在上世纪是由日本专家任天堂的开发的,后流传到中国,在的一所高校中,由一位物理老师傅瓒修改后流行于整个大陆,现在人们所玩的
10、坦克大战游戏大部分都是在傅瓒的基础上修改的,出于对游戏开发的兴趣与好奇,便尝试开发了此游戏1.3设计游戏的必备知识1.3.1 Java语言程序设计的基本知识点1java语言支持面向对象程序语言的三个关键特性(1)封装将对象的数据与操作数据的方法相结合,通过方法将对象的数据和实现的细节保护起来。(2)继承当一个类是另一个类的特例时,这两个类之间具有父子关系。子类就可以继承了父类的状态(变量)和行为(方法),子类可以重用父类的这部分代码。继承关系减少了程序中相似代码的重复说明。程序员可以再父类中对一些共同操作与属性只说明一次,而在子类中,基于子类的特性再进行扩展或是改变。并且继承具有传递性。(3)
11、多态多态可以表达为,对外一个接口,部多重实现。Java语言支持2种形式的多态。运行时多态,和编译时多态是通过方法的重载实现编译时的多态,而遇到类之间的继承性,方法的重实现运行时多态。2类和对象的基本概念类和对象是java中的基本组成要素。类描述了同一类对象都举要的数据和行为。创建一个新类,就是创建了一种新的数据类型。类有两种基本成分:变量和方法,成为成员变量和成员方法。(1)public 说明了类的属性。Extend表示类继承了superclassname为父名的父类,implements关键词表示类实现了interfacenamelist中列出的各个接口。(2)public的属性说明任意类均
12、可以访问这个类,如果类声明中没有public,则只有定义在同一个包中的类才能访问这个类。(3)类体。类体提供了这个类的对象在生命周期中需要的代码, 构造和初始化新对象的构造方法。(4)类的封装与隐藏 Java中类成员的访问权限有: public , private,以与默认权限(是没有任何定义符的)。利用这种访问权限可以控制类中的信息的隐藏程度。(5)方法体中可以声明方法中所用到的局部变量,它的作用域只在该方法的部,如果局部变量的名字和类的成员变量的名字相同,则成员变量被隐藏。如果要将该成员变量显露出来,则需要在该变量前加修饰符this。3.方法的重写在类的层次结构中,当子类的成员变量与父类的
13、成员变量同名时,子类的成员变量会将父类的成员变量隐藏。方法重写:子类可以改写父类方法所实现的功能。4.static关键词在成员变量声明是用static,是是该变量声明我静态变量。静态变量只是在系统加载所在的类时,分配空间并初始化。main方法是一个静态方法,它是程序的入口点。5.接口与类相比,接口只是规定了一个类的基本形式,不涉与什么实现的细节。接口只是进行方法的声明,不提供任何方法的实现接口中的所用方法都是抽象的,一个类可以显现多个接口, 的泪但是只能继承一个抽象的父类接口与显现它的类不构成继承体系。6.包为了使类易于查找和使用,为了避免命名冲突,我们将一组相关类和接口包裹在一起形成包。7.
14、子类和父类,而没有说明抽象类的作用。抽象类是据有一个或多个抽象方法的类,必须声明为抽象类。抽象类的特点是,不能创建实例上面讲的只是子类和父类。而没有说明抽象类的作用。抽象类是据有一个或多个抽象方法的类,必须声明为抽象类。8.抽象类与接口紧密相关。然而接口又比抽象类更抽象,这主要表达在它们的差别上:类可以实现无限个接口,但仅能从一个抽象(或任何其他类型)类继承,从抽象类派生的类仍可实现接口,从而得出接口是用来解决多重继承问题的。抽象类当中可以存在非抽象的方法,可接口不能且它里面的方法只是一个声名必须用public来修饰没有具体实现的方法。抽象类中的成员变量可以被不同的修饰符来修饰,可接口中的成员
15、变量默认的都是静态常量(static final)。这一点也是最重要的一点本质的一点抽象类是对象的抽象,然接口是一种行为规。 1.3.2 Java语言的特性1平台无关性Java引进虚拟机原理,并运行于虚拟机,实现不同平台之间的Java接口。使用Java编写的程序能在世界围共享。Java的数据类型与机器无关。2安全性Java的编程类似C+,但舍弃了C+的指针对存储器地址的直接操作,程序运行时,存由操作系统分配,这样可以避免病毒通过指针入侵系统。它提供了安全管理器,防止程序的非法访问。3面向对象 Java吸收了C+面向对象的概念,将数据封装于类中,实现了程序的简洁性和便于维护性,使程序代码可以只需
16、一次编译就可反复利用。4健壮性Java致力与检查程序在编译和运行时的错误,并自动回收存,减少了存出错的可能性。Java取消了C语言的结构、指针、#define语句、多重继承、操作符、重载等不易被掌握的特性,提供垃圾收集器自动回收不用的存空间。第2章 需求分析需求分析即是分析用户的需求,是软件计划时建立的可行性进行细化与精确,分配软件元素,是软件定义时期的最后一个阶段,它的基本任务是确定系统必须做什么。是对要做的系统确定一个完整的、具体的、清晰的、准确的要求。可以分为需求的提出,需求的描述,需求的评审等阶段。需求分析也是设计数据库的起点,需求分析的结果是否准确地反映了用户的实际要求,将直接影响到
17、后面各个阶段的设计,并影响到设计结果是否合理和实用。需求分析的任务是通过详细调查现实世界要处理的对象(坦克、子弹、墙等),充分了解游戏的运行概况,明确开发游戏的各种需求,然后在此基础上确定游戏的功能。调查的重点是“数据”和“处理”,通过调查、收集与分析,获得开发游戏的如下要求:信息要求、处理要求、安全性与健壮性要求。2.1系统需求分析坦克大战主要需要我方坦克和对方坦克,还有我的基地,砖墙,铁墙,水,绿草,开始背景,游戏胜利背景,游戏完毕背景,以与各种事件触发音乐。我方坦克和对方坦克都可以上下左右移动,游戏的玩家通过相应的键来控制坦克的移动和发射子弹,对方坦克在创建的时候就能够发出子弹。当我方子
18、弹与敌军坦克相碰时会有爆炸效果产生。当我方坦克被对方的子弹打中,或者总部被毁时或者我方坦克打中对方坦克的数目达到某个值时游戏完毕。2.2用况建模图2-1游戏用例图游戏中敌我双方坦克均可完成射击,开动的功能,但己方坦克的运行是通过键盘响应事件控制,而敌方坦克是根据设定相应的休眠周期来控制运行的。同时,出现在屏幕上的敌方可能会有较多的数量,这需要为每个敌方开辟一个线程以便能让其独立运行。Java的多线程能力为实现这样的游戏提供了可能。敌人坦克的运行算法也需要进行适当的设置,以免游戏过于简单,单调。2.3活动建模图2-2游戏活动图游戏没开始前是一个由玩家确定是否开始的界面,玩家输入1开始游戏,每一关
19、坦克数量不同,随着关数的增加,坦克数量也在不断增加,我方坦克不关在哪一关生命值用完了游戏便完毕,但只有游戏进行到最后一关并将最后一关的坦克全数歼灭我方才算取得胜利。2.4开发环境操作系统:Microsoft Windows XP程序语言:Java 2开发包:Java(TM)2 Standard Edition (build 1.4.1_02-b06) Micro. J2ME Wireless Tool Kit 2.1IDE: Myeclipse7.02.5 J2ME概况与应用2.5.1 Java平台的四个版本虽然 Java 已经被用到许多企业级软体上,可是其实骨子里面还是非常适合用在嵌入式系统
20、之中。Java平台演进到Java2后,Java平台分别针对不同领域的需求被分成四个版本,亦即J2EE、J2SE、J2ME以与Java Card,其结构示意图见图2-3。J2eeJ2seJ2meSmart card图2-3 java版本J2EE是Java2的标准版,其核心是一组技术规与指南,其中所包含的各类组件、服务架构与技术层次,均有共同的标准与规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,企业部或外部难以互通的窘境。J2SE是Java2的标准版,是J2EE的基础,定位在客户端,主要用于桌面应用软件的编程,它大量的JDK代码库是每
21、个要学习J2EE的编程人员必须掌握的,它包含那些构成Java语言核心的类。 比如:数据库连接、接口定义、输入/输出、网络编程 J2ME是为机顶盒、移动和PDA之类嵌入式消费电子设备提供的Java语言平台,包括虚拟机和一系列标准化的Java API。Java Card技术主要是让智慧卡或与智慧卡相近的装置上,以具有安全防护性的方式来执行小型的Java Applet,此技术也被广泛运用在SIM卡、提款卡上。2.6 本章小结本章主要讲述坦克大战游戏所需要的元素以与国外游戏的发展背景。以与介绍了国外任天堂(Nintendo)的8位FC机器和Battle City游戏程序,同时介绍了java语言的特性和
22、关键知识点和开发环境,由于J2ME平台的好多特征对企业组织发展都有益,所以它被广大设备制造商、网络通信公司和消费者广泛承受。所以J2ME平台是未来Java平台发展的重点项目。另外因为J2ME应用在不同设备上都是便携式的,他们常常可在网络上下载和执行。Java被设计成一种安全的语言。所有字节码应用在执行之前都要校验;JVM在执行过程中监督应用的安全性。第3章 游戏设计本游戏中设计的主要研究的容:敌我双方的坦克以与子弹均以图片方式显示,并且添加游戏包含河、墙等环境元素。使用多线程来控制坦克的动作同时使用缓冲技术来减少游戏过程中屏幕的闪动率,当游戏的难度会随杀死敌人数量的增加而自动提高。敌人中包含特
23、殊坦克,杀死后会随机出现奖励物品,我方坦克是有生命值控制的。本游戏采用版本升级的方式逐步完善游戏功能。3.1 游戏结构设计本游戏中有游戏主窗口程序模块,坦克类模块,子弹模块,河流模块,墙壁模块,与容纳这些物体的父类容器模块,奖励模块,爆炸显示模块,配置读取模块,这写模块之间相互联系,如图3-1所示。图3-1 游戏结构图3.2 数据结构设计游戏中各个元素定义成线程类,并且在一定的条件下某些元素随机消失,随机出现,因此为了操作的方便,将这些元素均存放在链表中,采用链表而不采用数组是因为对链表的插入和删除操作容易,且其占用存的空间是可变的,不用像数组那样事先需要为其分配一定的存储空间,因此链表还节省
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 坦克 大战 游戏 改进 设计
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内