插件,作用是关联Android SDK,使Eclipse能够新建Android工程。
1.2.3 Android SDK
Android SDK全称为Android Software Development Kit,它提供在Windows/Linux/
Mac平台上开发Android应用的开发组件。包含在Android平台上开发移动应用程序的各种工具集,主要是由以下5个部分组成:
Andriod模拟器(AVD Manager.exe):运行在计算机上的虚拟移动模拟器,可以使用模拟器来在一个实际的Android运行环境下设计,调试和测试应用程序。
调试监视服务(ddms.bat):它集成在Dalvik(Android平台虚拟机)中,用于管理运行在模拟器或设备上的进程,并协助进行调试。可以用它来去除进程,选择一个特定程序来调试,生成跟踪数据,查看堆和线程数据,对模拟器或设备进行屏幕快照等。
Android调试(sb.exe):它用于向模拟器或手机设备安装应用程序的apk文件和从命令行访问模拟器或手机设备。也可以用于将标准的调试器连接到运行在android模拟器或手机设备上的应用代码。
SQLite数据库(sqlite.exe):Android应用程序可以创建和使用SQLite数据文件,开发者和使用者也可以方便的访问这些数据文件。
创建SD卡工具(mksdcard.exe):主要用于模拟手机SD卡。在创建AVD中,可以选择该工具作为SD卡。
1.2 Android、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秒内,倒计时为零则游戏结束,打中目标数就是该次游戏的分数。
上一篇:
基于单片机的温度控制器
下一篇:
试论APP广告在手机中的应用