基于Android平台的坦克大战.docx
- 文档编号:642927
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:18
- 大小:102.99KB
基于Android平台的坦克大战.docx
《基于Android平台的坦克大战.docx》由会员分享,可在线阅读,更多相关《基于Android平台的坦克大战.docx(18页珍藏版)》请在冰豆网上搜索。
基于Android平台的坦克大战
基于Android平台的坦克大战
第1章绪论
1.1系统开发背景
游戏软件业是一个新兴行业,存在着巨大的生存和发展空间,同时它也是一个存在社会争议的行业。
游戏的完整定义可以归纳为:
一种由道具和规则构建而成、由人主动参与、有明确目标、在进行过程中包含竞争且富于变化的以娱乐为目的的活动,它与现实世界相互联系而又相互独立,能够体现人们之间的共同经验,能够体现平等与自由的精神。
游戏产业准确地讲应该叫做电子娱乐业,是指基于电子技术、计算机技术、软件技术、网络技术和无线技术的新型娱乐产业,分为单机游戏、网络游戏和无线游戏等几个部分。
电子游戏业从诞生至今已经有几十年的时间,可仅仅在这短短的几十年的时间里,它却在发达国家的经济发展中发挥了显著的作用。
游戏软件业从诞生到现在,历经几代的发展,已进入了一个非常成熟的时期。
对于我国而言,游戏软件业也有快速的发展,但是因为很多原因阻碍了这个产业的发展,如游戏软件研发人才缺乏,软件开发投入不足;对青少年的负面影响,一些不健康的游戏软件导致了社会对游戏软件的偏见;技术滞后等情况。
坦克大战游戏是一款风靡全球的电视游戏机和掌上游戏机游戏,它曾经造成的轰动与造成的经济价值可以说是游戏史上的一件大事。
它看似简单但却变化无穷,令人上瘾。
相信大多数用户都还记得为它痴迷得茶不思饭不想的那个坦克大战时代。
究其历史,坦克大战最早还是出现在FC机上,现在又重新掀起这股让人沉迷的坦克大战风潮,它的规则简单,容易上手,且游戏过程变化无穷,使用户既能感受到游戏中的乐趣,也给用户提供了一个展现自己高超技艺的场所。
这次练习的是在Visual studio C++ 2003上生成坦克大战游戏。
Microsoft Visual C++是一个非常好的windows软件开发程序,很多的windows平台下的软件都是把它作为辅助工具编写出来的。
现在使用得比较多的是6.0版 和.NET版,随着版本的提高,Microsoft给我们提供的函数数据库也越来越方便,越来越丰富了。
当完成时,觉得自己在不知不觉中已跨入了它的大门。
使用Microsoft Visual studio C++ 几乎可以做出一切东西来,从即时战略到三维RPG游戏。
当然还有各种应用软件了。
如果要开发出更复杂的游戏,就还需要学习更多的东西,为了提高显示速度,需要使用DirectX,为了制作3D图像,又要使用Direct3D。
由于游戏的流程和内部原理很复杂,所以需要学习数据结构、图形学„„ 学习这么多专业知识需要很大的努力,不过我心中有一个梦想,那么再难的目标也能实现。
“千里之行,始于足下”,尤其是在迈出了坦克大战的第一步之后,实际上,已经走进了软件开发,尤其是游戏开发的大门,前面的世界是美丽多彩而又充满挑战的。
1.2相关技术介绍
1.2.1Eclipse
Eclipse是著名的跨平台的自由集成开发环境(IDE)。
其本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。
许多软件开发商以Eclipse为框架开发自己的IDE,因此得到众多组织定力支持。
1.2.2ADT
这是Eclipse插件,作用是关联AndroidSDK,使Eclipse能够新建Android工程。
1.2.3AndroidSDK
AndroidSDK全称为AndroidSoftwareDevelopmentKit,它提供在Windows/Linux/
Mac平台上开发Android应用的开发组件。
包含在Android平台上开发移动应用程序的各种工具集,主要是由以下5个部分组成:
Andriod模拟器(AVDManager.exe):
运行在计算机上的虚拟移动模拟器,可以使用模拟器来在一个实际的Android运行环境下设计,调试和测试应用程序。
调试监视服务(ddms.bat):
它集成在Dalvik(Android平台虚拟机)中,用于管理运行在模拟器或设备上的进程,并协助进行调试。
可以用它来去除进程,选择一个特定程序来调试,生成跟踪数据,查看堆和线程数据,对模拟器或设备进行屏幕快照等。
Android调试(sb.exe):
它用于向模拟器或手机设备安装应用程序的apk文件和从命令行访问模拟器或手机设备。
也可以用于将标准的调试器连接到运行在android模拟器或手机设备上的应用代码。
SQLite数据库(sqlite.exe):
Android应用程序可以创建和使用SQLite数据文件,开发者和使用者也可以方便的访问这些数据文件。
创建SD卡工具(mksdcard.exe):
主要用于模拟手机SD卡。
在创建AVD中,可以选择该工具作为SD卡。
1.2Android、C语言、C++三种主流编程技术比较
Android(Java)语言是一种跨平台,适合于分布式计算环境的面向对象编程语言。
JAVA现在主要用在WEB开发,手机游戏及一些平台游戏的开发,因为它具有很好的跨平台性,在手机等各种电子产品上应用非常广泛。
C语言是一种面向过程编程,这就使得Java具有重用的特性,在开发速度上比C语言更快,但是在运行速度上却是C更快,因为C属于底层语言,它比JAVA更加亲近机器,所以在许多系统开发上一般是用C语言,比如我们常用的XP系统、LINUX系统,都是C语言开发的。
跨平台的服务器端的嵌入式脚本语言。
C++多用于游戏引擎、反病毒、硬件驱动以及一些对运行效率要求比较高的应用程序,比如数据库管理系统。
C++语言在提供强大的功能的同时也提高了程序含BUG的可能性。
C++为了照顾大量的C语言使用者,而兼容了C,使得自身仅仅成为了带类的C语言,多多少少影响了其面向对象的彻底性。
第2章需求分析
2.1系统的功能需求
坦克大战是一款经典的游戏本游戏在学习继承前辈的同时尝试性的进行一些创新下面是对系统主要功能的简要概述。
整体上说,本游戏分为敌我双方,主战坦克由玩家控制,敌方坦克能够智能化的随机出现在屏幕上,并且移动但是不会发射子弹。
玩家的控制:
游戏打开的时候,玩家可以选择音乐音效的开关还可以查看积分榜,然后进入游戏,玩家可以通过屏幕上面的虚拟键控制坦克的运行,可以通过触屏来控制坦克的炮筒方向并且打出炮弹,当坦克打中敌方坦克,子弹和地方坦克都死亡,分数会加一。
游戏过程中,玩家不可以暂停游戏,然后再开始游戏。
当倒计时结束时,则游戏结束。
敌方坦克的智能运行:
敌方坦克由于需要具有一定的智能性,随机的出现在屏幕上,并且消失在屏幕以外,撞到主角坦克时,也不会发生爆炸。
使之具有一定的可玩性。
敌人可以自动行走,但是应当在以下适当的情况下转向:
首先是是否超出界面的边界,其次是是否与地图障碍物发生了碰撞,再次是是否与用户坦克发生了碰撞。
子弹的运行:
主战坦克是有玩家控制打出的,通过控制炮筒的方向,向不同的方向发射子弹,如果击中目标就会爆炸消失,如果没有击中目标,出了屏幕也会消失。
音乐音效的设置:
玩家可以根据自己的喜好来通过开关按钮,控制音乐音效。
积分榜:
玩家的得分会在积分榜上面显示,主要显示六个最高分。
主角击中一个敌方坦克分数就会增加一,直到60秒结束,所得的分数,就是该次游戏的最终得分,所得的分数要和数据库里面的分数进行比较的,看看是否能够显示在积分榜上面。
2.2功能上需解决的技术问题
游戏程序是一项精度要求很高的程序系统,因为其代码利用率很高。
一个实时运行的最终作品,每秒都会运行成千上万行程序、绘图事件、键盘事件都会以极高的频率在后台等待响应。
若有丝毫的差别都将很容易导致程序在运行不久后可能出现严重错误甚至崩溃死机。
因此,其逻辑设计应当相当严谨,需将所有可能发生的事件及意外情况考虑在设计中。
游戏中为了美观和适用性强,就需要采用外部文件引入的png图片有关贴图,屏幕刷新的双缓冲等都有较好的解决方案。
这里应当减少手工画图,从而是程序能更高效的运行。
己方坦克的运行可以通过监听键盘控制,但由于敌方是自动运行就需要有较强的智能性同时屏幕上的敌方可能会有较多的数量这需要为每个敌方开辟一个线程以便能让其独立运行。
还需要在坦克死亡的时候终止线程。
Android的多线程能力为实现这样的游戏提供了可能。
敌人坦克的运行算法也需要进行适当的设置以免游戏过于简单、单调或者过于繁杂。
对于双方坦克发出的子弹的控制也需要对其跟踪控制,为了避免子线程太多的现象,子弹不应当成为独立的线程。
这里就需要一个单独的线程来控制子弹或者是由子弹所属的坦克来控制子弹。
这需要对所有的对象有较好的控制。
另外子弹在运行过程中也需要实时扫描是否碰撞敌方坦克或屏幕边界。
如果子弹由产生自己的坦克控制,就需要特别这一子弹类和坦克类之间的关系。
碰撞检测是坦克大战的最重要的环节之一。
主角坦克在运动过程中需要考虑到是否碰子弹本身或对方坦克,以免重叠运行,造成许多逻辑上不可能的情况。
每一次刷新页面、每一次的移动都要考虑整体以及个体与个体的变化。
游戏的结束、开始、动态信息画面作为构成一个完美程序都是必不可少的重要部分。
良好的用户界面更是吸引用户的硬指标相关的美术构图也需要有一定的考虑。
游戏中敌方坦克的路径专门类,这个类中存储着的三维数组就是敌方坦克的经过的坐标和时间。
用户运行游戏时需要有分数记录的可能。
如何采用合理的记分标准需要进行适当的设计。
记录分数的存储方式也需要有较好的解决方案。
手机中由于处理器和内存空间、存储空间都十分有限,其数据库系统与普通PC大相径庭。
Android是基于虚拟机的半解释型编译系统,其执行效率较C++等完全编译后的程序会低很多,程序如果不进行精简和优化,将可能导致运行的不流畅。
除开发过程中对结构上的控制、变量的使用、算法的优化等优化外,还可以使用混淆器(Obfuscator)进行程序打包后的优化。
第3章概要设计
3.1系统功能设计
3.1.1主角
在人机对战时,主角的主要功能是点击左右虚拟按钮,坦克会向左向右移动,但是通过按住按钮的时间,来控制坦克的移动速度,按住时间长,坦克的速度就会加快,按住的时间短,坦克就会移动的比较慢。
通过触屏来控制坦克炮筒的方向,并且发射子弹。
当子弹打中目标时,子弹和目标都会爆炸,当子弹没有打中目标时,子弹走出屏幕,子弹消失。
该游戏主要是控制在60秒内,倒计时为零则游戏结束,打中目标数就是该次游戏的分数。
如图3.01所示,
图3.1主角功能图
3.1.2背景音乐和音效
当游戏进入到游戏按钮主页面时,可以对游戏进行音乐音效的设置,音乐是当游戏开始时,加的背景音乐;而音效设置是指挡子弹发射或者子弹击中目标时,所加的音效。
按钮主页面的音效设置包括两方面的内容,音效的设置和背景音乐的设置。
音效分为开,关;音乐也分为开和关。
背景音乐从游戏的开始直到游戏的结束,而音效主要是在游戏的60秒内才有并且要有子弹的发射或者子弹及中敌方坦克,敌方坦克发生爆炸才能听到音效的。
如表3.2所示
表3.2音乐音效用例图
用例名称
背景音乐音效
功能简述
控制游戏背景音乐的开关;发射子弹时的音效;
子弹打中目标时,爆炸音效
前置条件
游戏开启,音乐音效打开
后置条件
游戏没有结束,子弹打中目标或者有子弹发射
基本流
1、在主按钮界面中,设置音效音乐
2、设置音乐的开关
3、设置音效的开关
4、设置成功,返回主按钮界面
3.1.3敌方坦克
敌方坦克在游戏开始以后才开始出现,并且没有什么太大的规律,都是从屏幕的最右面出现,然后消失在屏幕以外或者被子弹击中消失。
敌方坦克走的路线是有轨道的,从屏幕的右上方出现后,会走一段轨迹,在运动过程中如果被子弹打中就会爆炸消失,如果没有被击中,则会消失在屏幕以外的地方。
如表3.3所示,
表3.3敌方坦克用例图
用例名称
敌方坦克
功能简述
坦克随机出现
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Android 平台 坦克 大战