毕业论文基于Android平台的坦克大战游戏设计17015.doc
《毕业论文基于Android平台的坦克大战游戏设计17015.doc》由会员分享,可在线阅读,更多相关《毕业论文基于Android平台的坦克大战游戏设计17015.doc(27页珍藏版)》请在三一办公上搜索。
1、摘 要本设计采用面向对象的设计模式,对游戏中的所有物体赋予对象的概念和属性。在开始游戏后,可以对游戏的进行一些初始设置。在游戏按钮主页面上面有三个按钮,这三个按钮分别是开始游戏,设置音效和积分榜。设置音效分为背景音乐的设置还有音效的设置,这里的设置主要是开关。音乐是背景音乐,音效是当发射子弹时,带的声音还有当子弹击中敌方坦克时,发出的爆炸声。积分榜是玩家的得分展示,游戏最后可以根据积分来判断玩家是否破纪录,如果破纪录,则游戏结束时界面会显示恭喜你破纪录了,如果没有破纪录,则会显示请再接再厉。开始游戏,玩家可以通过主界面上面的虚拟按钮来控制主角的左右移动,通过触屏来控制坦克炮筒的角度,并且发射子
2、弹。敌方单位随机的出现在屏幕上,然后经过一段弧形的路径,如果在移动过程中被子弹击中,子弹和坦克会消失,如果没有被子弹击中,则会判断该坦克是否在屏幕上面,在屏幕上面就会继续移动,不在屏幕上面该目标就会消失。分数的记录是在60秒内,主角坦克击中敌方坦克的数量。关键词:面向对象 坦克大战 Java Socket 类AbstractThis design uses an object-oriented design patterns, all objects in the game to give the concept of objects and attributes. At the beginn
3、ing of the game, the game can make some initial setup. Button home side in the game with three buttons, which are three buttons to start the game, set the audio and standings. Set audio settings and background music into sound settings, set the main switch here. Music is background music, sound effe
4、cts when firing bullets, the bands sound as well as the bullet hit enemy tanks, the issue of the explosion. Standings show the players score, the game can eventually points to determine whether the player according to the record, if the record, the game is over when the screen displays Congratulatio
5、ns on your record, if not record-breaking, it will display your persistent efforts. Start the game, players can virtual buttons above the main interface to control and move around the protagonist, through the touch screen to control the angle of the tank barrel and firing bullets. Enemy units random
6、ly appear on the screen, and then after a curved path during the move if hit by a bullet, bullets and tanks will disappear, if not hit by a bullet, it will determine whether the screen above the tank , will continue to move in the screen above, not on the screen above the target disappears. Scores r
7、ecord is within 60 seconds, the protagonist hit enemy tanks tank number.Keywords:Object-oriented Tankedaizhan Java Socket class目 录第1章 绪论11.1 系统开发背景11.2 相关技术介绍1 1.2.1 Eclipse 1 1.2.2 ADT2 1.2.3 Android SDK21.2 Android、C语言、C+三种主流编程技术比较2第2章 需求分析32.1 游戏设计的需求分析32.2 功能上需解决的问题3第3章 概要设计53.1 系统功能设计5 3.1.1主角5
8、 3.1.2背景音乐和音效5 3.1.3敌方坦克63.2 系统功能设计流程63.3 坦克大战相关功能联系设计7第4章 详细设计104.1 坦克大战主要类基本功能分析104.1.1 主类104.1.2 欢迎界面104.1.3 按钮主页面114.1.4主角124.1.5 子弹124.1.6音乐和音效134.1.7敌方坦克144.1.8最高分数144.1.9 游戏结束154.1.10其他一些相关的线程和类154.2 重要算法的实现154.2.1 敌方坦克出现消失路径算法154.2.2 最高分数类存储算法164.2.3坦克炮筒角度的计算算法17总结与展望19致 谢21参考文献23第1章 绪 论1.1
9、系统开发背景 游戏软件业是一个新兴行业,存在着巨大的生存和发展空间,同时它也是一个存在社会争议的行业。 游戏的完整定义可以归纳为:一种由道具和规则构建而成、由人主动参与、有明确目标、在进行过程中包含竞争且富于变化的以娱乐为目的的活动,它与现实世界相互联系而又相互独立,能够体现人们之间的共同经验,能够体现平等与自由的精神。游戏产业准确地讲应该叫做电子娱乐业,是指基于电子技术、计算机技术、软件技术、网络技术和无线技术的新型娱乐产业,分为单机游戏、网络游戏和无线游戏等几个部分。电子游戏业从诞生至今已经有几十年的时间,可仅仅在这短短的几十年的时间里,它却在发达国家的经济发展中发挥了显著的作用。 游戏软
10、件业从诞生到现在,历经几代的发展,已进入了一个非常成熟的时期。对于我国而言,游戏软件业也有快速的发展,但是因为很多原因阻碍了这个产业的发展,如游戏软件研发人才缺乏,软件开发投入不足;对青少年的负面影响,一些不健康的游戏软件导致了社会对游戏软件的偏见;技术滞后等情况。坦克大战游戏是一款风靡全球的电视游戏机和掌上游戏机游戏,它曾经造成的轰动与造成的经济价值可以说是游戏史上的一件大事。它看似简单但却变化无穷,令人上瘾。相信大多数用户都还记得为它痴迷得茶不思饭不想的那个坦克大战时代。究其历史,坦克大战最早还是出现在FC机上,现在又重新掀起这股让人沉迷的坦克大战风潮,它的规则简单,容易上手,且游戏过程变
11、化无穷,使用户既能感受到游戏中的乐趣,也给用户提供了一个展现自己高超技艺的场所。这次练习的是在VisualstudioC+2003上生成坦克大战游戏。MicrosoftVisualC+是一个非常好的windows软件开发程序,很多的windows平台下的软件都是把它作为辅助工具编写出来的。现在使用得比较多的是6.0版和.NET版,随着版本的提高,Microsoft给我们提供的函数数据库也越来越方便,越来越丰富了。当完成时,觉得自己在不知不觉中已跨入了它的大门。使用MicrosoftVisualstudioC+几乎可以做出一切东西来,从即时战略到三维RPG游戏。当然还有各种应用软件了。如果要开发
12、出更复杂的游戏,就还需要学习更多的东西,为了提高显示速度,需要使用DirectX,为了制作3D图像,又要使用Direct3D。由于游戏的流程和内部原理很复杂,所以需要学习数据结构、图形学学习这么多专业知识需要很大的努力,不过我心中有一个梦想,那么再难的目标也能实现。“千里之行,始于足下”,尤其是在迈出了坦克大战的第一步之后,实际上,已经走进了软件开发,尤其是游戏开发的大门,前面的世界是美丽多彩而又充满挑战的。 1.2相关技术介绍1.2.1 EclipseEclipse是著名的跨平台的自由集成开发环境(IDE)。其本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的I
13、DE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE,因此得到众多组织定力支持。1.2.2 ADT这是Eclipse插件,作用是关联Android SDK,使Eclipse能够新建Android工程。1.2.3 Android SDKAndroid SDK全称为Android Software Development Kit,它提供在Windows/Linux/Mac平台上开发Android应用的开发组件。包含在Android平台上开发移动应用程序的各种工具集,主要是由以下5个部分组成:Andriod模拟器(AVD Manager.exe):运行在计算机上的虚拟移动模
14、拟器,可以使用模拟器来在一个实际的Android运行环境下设计,调试和测试应用程序。调试监视服务(ddms.bat):它集成在Dalvik(Android平台虚拟机)中,用于管理运行在模拟器或设备上的进程,并协助进行调试。可以用它来去除进程,选择一个特定程序来调试,生成跟踪数据,查看堆和线程数据,对模拟器或设备进行屏幕快照等。Android调试(sb.exe):它用于向模拟器或手机设备安装应用程序的apk文件和从命令行访问模拟器或手机设备。也可以用于将标准的调试器连接到运行在android模拟器或手机设备上的应用代码。SQLite数据库(sqlite.exe):Android应用程序可以创建和
15、使用SQLite数据文件,开发者和使用者也可以方便的访问这些数据文件。创建SD卡工具(mksdcard.exe):主要用于模拟手机SD卡。在创建AVD中,可以选择该工具作为SD卡。 1.2 Android、C语言、C+三种主流编程技术比较Android(Java) 语言是一种跨平台,适合于分布式计算环境的面向对象编程语言。JAVA现在主要用在WEB开发,手机游戏及一些平台游戏的开发,因为它具有很好的跨平台性,在手机等各种电子产品上应用非常广泛。C语言是一种面向过程编程,这就使得Java具有重用的特性,在开发速度上比C语言更快,但是在运行速度上却是C更快,因为C属于底层语言,它比JAVA更加亲近
16、机器,所以在许多系统开发上一般是用C语言,比如我们常用的XP系统、LINUX系统,都是C语言开发的。跨平台的服务器端的嵌入式脚本语言。C+多用于游戏引擎、反病毒、硬件驱动以及一些对运行效率要求比较高的应用程序,比如数据库管理系统。 C+语言在提供强大的功能的同时也提高了程序含BUG的可能性。 C+为了照顾大量的C语言使用者,而兼容了C,使得自身仅仅成为了带类的C语言,多多少少影响了其面向对象的彻底性。 第2章 需求分析2.1 系统的功能需求 坦克大战是一款经典的游戏本游戏在学习继承前辈的同时尝试性的进行一些创新下面是对系统主要功能的简要概述。 整体上说,本游戏分为敌我双方,主战坦克由玩家控制,
17、敌方坦克能够智能化的随机出现在屏幕上,并且移动但是不会发射子弹。 玩家的控制:游戏打开的时候,玩家可以选择音乐音效的开关还可以查看积分榜,然后进入游戏,玩家可以通过屏幕上面的虚拟键控制坦克的运行,可以通过触屏来控制坦克的炮筒方向并且打出炮弹,当坦克打中敌方坦克,子弹和地方坦克都死亡,分数会加一。游戏过程中,玩家不可以暂停游戏,然后再开始游戏。当倒计时结束时,则游戏结束。 敌方坦克的智能运行:敌方坦克由于需要具有一定的智能性,随机的出现在屏幕上,并且消失在屏幕以外,撞到主角坦克时,也不会发生爆炸。使之具有一定的可玩性。敌人可以自动行走,但是应当在以下适当的情况下转向:首先是是否超出界面的边界,其
18、次是是否与地图障碍物发生了碰撞,再次是是否与用户坦克发生了碰撞。 子弹的运行:主战坦克是有玩家控制打出的,通过控制炮筒的方向,向不同的方向发射子弹,如果击中目标就会爆炸消失,如果没有击中目标,出了屏幕也会消失。音乐音效的设置:玩家可以根据自己的喜好来通过开关按钮,控制音乐音效。积分榜:玩家的得分会在积分榜上面显示,主要显示六个最高分。主角击中一个敌方坦克分数就会增加一,直到60秒结束,所得的分数,就是该次游戏的最终得分,所得的分数要和数据库里面的分数进行比较的,看看是否能够显示在积分榜上面。2.2 功能上需解决的技术问题 游戏程序是一项精度要求很高的程序系统,因为其代码利用率很高。一个实时运行
19、的最终作品,每秒都会运行成千上万行程序、绘图事件、键盘事件都会以极高的频率在后台等待响应。若有丝毫的差别都将很容易导致程序在运行不久后可能出现严重错误甚至崩溃死机。因此,其逻辑设计应当相当严谨,需将所有可能发生的事件及意外情况考虑在设计中。 游戏中为了美观和适用性强,就需要采用外部文件引入的png图片有关贴图,屏幕刷新的双缓冲等都有较好的解决方案。这里应当减少手工画图,从而是程序能更高效的运行。 己方坦克的运行可以通过监听键盘控制,但由于敌方是自动运行就需要有较强的智能性同时屏幕上的敌方可能会有较多的数量这需要为每个敌方开辟一个线程以便能让其独立运行。还需要在坦克死亡的时候终止线程。Andro
20、id的多线程能力为实现这样的游戏提供了可能。敌人坦克的运行算法也需要进行适当的设置以免游戏过于简单、单调或者过于繁杂。 对于双方坦克发出的子弹的控制也需要对其跟踪控制,为了避免子线程太多的现象,子弹不应当成为独立的线程。这里就需要一个单独的线程来控制子弹或者是由子弹所属的坦克来控制子弹。这需要对所有的对象有较好的控制。另外子弹在运行过程中也需要实时扫描是否碰撞敌方坦克或屏幕边界。如果子弹由产生自己的坦克控制,就需要特别这一子弹类和坦克类之间的关系。 碰撞检测是坦克大战的最重要的环节之一。主角坦克在运动过程中需要考虑到是否碰子弹本身或对方坦克,以免重叠运行,造成许多逻辑上不可能的情况。每一次刷新
21、页面、每一次的移动都要考虑整体以及个体与个体的变化。 游戏的结束、开始、动态信息画面作为构成一个完美程序都是必不可少的重要部分。良好的用户界面更是吸引用户的硬指标相关的美术构图也需要有一定的考虑。游戏中敌方坦克的路径专门类,这个类中存储着的三维数组就是敌方坦克的经过的坐标和时间。用户运行游戏时需要有分数记录的可能。如何采用合理的记分标准需要进行适当的设计。记录分数的存储方式也需要有较好的解决方案。手机中由于处理器和内存空间、存储空间都十分有限,其数据库系统与普通PC大相径庭。 Android是基于虚拟机的半解释型编译系统,其执行效率较C+等完全编译后的程序会低很多,程序如果不进行精简和优化,将
22、可能导致运行的不流畅。除开发过程中对结构上的控制、变量的使用、算法的优化等优化外,还可以使用混淆器(Obfuscator)进行程序打包后的优化。 第3章 概要设计3.1 系统功能设计3.1.1 主角 在人机对战时,主角的主要功能是点击左右虚拟按钮,坦克会向左向右移动,但是通过按住按钮的时间,来控制坦克的移动速度,按住时间长,坦克的速度就会加快,按住的时间短,坦克就会移动的比较慢。通过触屏来控制坦克炮筒的方向,并且发射子弹。当子弹打中目标时,子弹和目标都会爆炸,当子弹没有打中目标时,子弹走出屏幕,子弹消失。该游戏主要是控制在60秒内,倒计时为零则游戏结束,打中目标数就是该次游戏的分数。 如图3.
23、01所示,左右移动子弹发射时间控制分数虚拟按钮炮筒位置 主角 图3.1 主角功能图3.1.2 背景音乐和音效 当游戏进入到游戏按钮主页面时,可以对游戏进行音乐音效的设置,音乐是当游戏开始时,加的背景音乐;而音效设置是指挡子弹发射或者子弹击中目标时,所加的音效。按钮主页面的音效设置包括两方面的内容,音效的设置和背景音乐的设置。音效分为开,关;音乐也分为开和关。背景音乐从游戏的开始直到游戏的结束,而音效主要是在游戏的60秒内才有并且要有子弹的发射或者子弹及中敌方坦克,敌方坦克发生爆炸才能听到音效的。如表3.2所示表3.2 音乐音效用例图用例名称背景音乐音效功能简述控制游戏背景音乐的开关;发射子弹时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业论文 基于 Android 平台 坦克 大战 游戏 设计 17015
链接地址:https://www.31ppt.com/p-2394303.html