飞机大战--毕业论文--初稿_第1页
飞机大战--毕业论文--初稿_第2页
飞机大战--毕业论文--初稿_第3页
飞机大战--毕业论文--初稿_第4页
飞机大战--毕业论文--初稿_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

I 毕业设计 论文 毕业设计 论文 题题 目 目 基于安卓平台的飞机大战游戏基于安卓平台的飞机大战游戏 学学 院 院 计算机科学学院计算机科学学院 专业班级 专业班级 计算机科学与技术计算机科学与技术 10 级级 2 班班 指导教师 指导教师 黄国兵黄国兵 职称 职称 高级工程师高级工程师 学生姓名 学生姓名 赵兵赵兵 学学 号 号 4100901021641009010216 II 摘 要 自从第一台计算机研发以来 计算机行业得到了迅速的发展 成就了很多 优秀的企业 例如国外的 IBM 微软 GOOGLE ARM 苹果等 国内的腾讯 阿里 巴巴 百度等 而引领计算机行业的主要因素除了硬件的支撑外 就数操作系 统了 而操作系统从 Dos UNIX LINUX Windows 等 PC 端正在逐渐向移动端转变 如 从 Linux 到 Android 从 Unix 到 IOS 从 Windows 到 Windows phone 主要还 是因为移动端的便携性 轻巧性深受人们的喜爱 就在这样的移动互联网浪潮 中 Android 系统更是高达移动端操作系统 80 的占有率 真可谓前景无限 而 在 Android 平台的应用中游戏业务又占着最大的比例 所以本次选题为基于 Android 的飞机大战游戏 其主要目的研究移动互联网的发展趋势 对其未来 的发展有深刻清晰的认识 本论文主要阐述以面向对象的程序开发语言 Java 及 Eclipse 为开发工具 而基于智能手机 Android 系统之上的飞机大战游戏 首先简要介绍课题的研究 背景 目的及意义 Android 的发展历程 当前国内外的发展现状 然后介绍 了 Android 平台开发环境及环境搭建 最后讲述了基于 Android 飞机大战游戏 功能的实现 其功能模块如下 提供敌机的类模块 提供子弹的类模块 主界 面模块 天空背景模块 检测子弹与敌机碰撞模块 检测 敌机与我拥有的战 机碰撞木块等 除此以外还为用户提供更加人性化的设计和方便人员的操作流 程 由于 Android 逐渐成为智能手机技术的主导 相信其基于 Android 的飞机 大战游戏将会受到更大的欢迎 关键字 安卓 游戏 飞行射击 飞机 III ABSTRACTABSTRACT Since the first computer researched and development the computer industry has been rapid development that made a lot of excellent enterprise such as IBM Microsoft Google ARM Apple inc In a foreign country Tencent Alibaba Group Baidu In the domestic Led by the computer industry in addition to hardware support the main factors for operating system And the operating system from Dos UNIX LINUX Windows PC correct is gradually to mobile terminal such as LINUX Android Unix IOS Windows Windows phone mostly because the mobile end portability and was deeply loved by people in this kind of mobile Internet in the tide of the Android system is as high as 80 of mobile terminal operating system share really unlimited prospects and in the application of the Android platform game business accounts for the largest proportion so this topic is based on the Android plane war game the development trend of mobile Internet the main objective for its future development are clear understanding This thesis mainly expounds Java with object oriented programming language and Eclipse as the development tool and the plane based on the intelligent mobile phone Android war games First briefly introduced the research background purpose and significance the development of Android the current domestic and foreign development present situation And then introduced the Android platform development environment and the environment finally tells the story of the realization of the function of Android plane war games Its function module is as follows enemy planes flying in and out of class module provides the bullet class module main interface module the sky background module detect bullet collision with the enemy aircraft module detection the enemy aircraft crash with my own wood etc in addition also provides users with more humanized design and convenient operation Because the Android smartphone technology has become the dominant gradually believe that the plane war game based on Android will be more welcome KEY WORDS Android Game Flight shooter Airplane IV 目 录 第 1 章 绪论 1 1 1 系统研究的背景及意义 1 1 2 国内外的发展现状 1 1 3 主要研究的内容 2 1 4 本文的组织结构 2 1 5 本章小结 3 第 2 章 用户需求分析 4 2 1 系统的架构描述 4 2 2 系友好的用户界面 5 2 3 技术选型 6 2 4 系统的开发环境 6 2 5 关键技术和工具简介 7 2 6 本章小节 8 第 3 章 系统概要设计 9 3 1 模块的划分 9 3 1 1 软件模块设计 9 3 1 2 软件功能模块 10 3 2 主界面设计 12 3 3 游戏界面设计 13 3 4 系统包及其资源规划 13 3 4 1 系统包管理如下 13 3 4 2 Sqlite 数据库 14 3 4 3 Runable 接口以及与 Thread 的区别 16 3 5 本章小结 20 第 4 章 系统功能的实现 21 4 1 主界面的功能实现 21 4 1 游戏界面的功能实现 26 4 3 子弹类的设计 39 4 3 敌机类的设计 40 4 5 本章小结 42 V 第 5 章 系统测试 43 5 1 软件测试的概念 43 5 2 系统的功能和安全测试 43 5 3 测试总结 45 第 6 章 总结 46 致 谢 47 参考文献 48 第一章 绪 论 0 第 1 章 绪论 1 1 系统研究的背景及意义 在手机游戏的早期 大多数开发者都是想要玩转设备 学习技巧和快速攻 关的狂热分子 但是 随着更多的开发者加入这个行业 手机游戏已经进化成 涉及到专业设计师 构造师 开发者 产品经销商 律师 和艺术家在内的主 导产品 这是行业走向成熟的必然趋势 尽管在某人的业余时间内要开发和推 销简单的游戏更加困难 但是更多的专业商店将为许多人提供更多的就业机会 从手机软件的平台的种类 游戏玩家的心理 未来移动通信服务终端的发 展 3G 手机网络对手机软件游戏的影响 还有从 J2ME 手机游戏开发平台介绍 的手机游戏的趋势和未来这种游戏的运营模式 这几方面的内容来看 手机游 戏是未来游戏发展的趋势 其移动性 互连性 必定会带来网络游戏的风暴 这就使我们对这一个新兴的领域有了一定的概念 对指导我们建立一个手机软 件开发培训的知识结构有一定的帮助 也是我们的一个发展契机 本文基于 Android 系统设计一种轻松休闲的游戏软件 让用户可以使用手 机轻松娱乐 因此项目研究和软件开发具有重要的实际应用价值 1 2 国内外的发展现状 手机游戏 Mobile Game 或 Wireless Game 是指消费者利用随身携带并具 有无线网络联机功能的智能移动终端设备 能随时随地来进行的游戏 手机游 戏最大的特点是其随时随地进行游戏的便利性 这些年来 手机游戏市场有了 很大的发展 手机游戏已成为使用率最高的手机娱乐应用 占到各种手机娱乐 应用比例的 78 4 在日本 手机游戏市场经历多年的稳定增长 市场规模已 经超过了 850 亿日元 1 在美国 手机游戏作为美国手机用户最喜欢的移动应 用之一 在 iPhone 和 Android 等智能终端推出后发展迅速 而在中国 根据易 观智库产业数据库最新发布的 2010 年第 4 季度中国手机游戏市场季度监测 数据显示 我国 2010 年手机游戏市场规模已达到 32 9 亿元 继续保持了较快 的发展 2011 年以来 Android 实现了计算机诞生以来最快速度的增长 目前 Android 以每天 85 万新增激活数的速度快速征服世界 成为世界范围内占有率 第一章 绪 论 1 最高的智能手机操作系统 根据 comScore 的统计 2012 年第一季度 Android 在 北美的市场占有率又增长了 3 7 达到 51 而根据赛诺的调研报告 Android 系统在中国 的市场份额高达 74 7 而 Android 游戏在诞生之处就被很多人看好 便宜的 价格 小巧的外观 游戏资源丰富 相对于传统主机来说 这些都是 Android 游戏机的优点 于是一批 Android 游戏陆续出现了 但事实证明 Android 游戏 并非当初描绘的那样美好 开放的 Android 开发平台 导致了游戏质量和数量 不那么尽如人意 所以在游戏的设计与研发过程中游戏的质量关一定要把好 1 3 主要研究的内容 本设计项目主要完成一种基于 Android 开发的一款游戏软件 项目研究和 软件设计遵循软件工程的方法 从需求分析 系统分析 概要设计 详细设计 软件编码调试 到验证测试 完成本软件整个过程的设计开发 项目研究和软 件设计的具体任务包括 1 加深面向对象编程思想 巩固 Java 语言的设计模式 掌握 Android 开发的环境搭建 2 学习和研究 Android 平台环境和软件接口的设计 3 学习和研究 Android 平台多线程 4 学习和研究 Android 系统中用户界面的动态显示 5 学习并掌握 Sqlite 数据库 6 学习并掌握 Android 平台下动态游戏开发的重要知识点 SurfaceView 1 4 本文的组织结构 第 1 章 绪论 本章主要介绍了课题的研究背景 课题研究的目的与意义 以及该项目所在领域国内外发展状况等 最后指出了本文工作内容及论文的组 织结构 第 2 章 软件需求分析和技术介绍 本章主要介绍了本系统的技术构架及课 题的需求分析与说明 简单的介绍了项目应用的平台和开发环境 并解析了关 键技术的含义 第 3 章 系统概要设计 本章是本文比较重要的章节 详细的划分了整个项 西安工程大学学士学位论文西安工程大学学士学位论文 1 目的开发模块 及各个模块的功能设计 最后对整个项目的包结构和项目资源 路径做了简单的剖析和介绍 第 4 章 系统功能的实现 详细介绍开发流程 从建一个 Android 项目开始 到最终完成软件开发的详细过程 介绍怎样检测飞机碰撞事件 怎样动态管理 界面 怎样实现飞机飞行的效果 第 5 章 系统测试 详细介绍了测试的概念 目的和方法 并介绍如何利用 Android 自带的测试工具了系统测试 第 6 章 总结 1 5 本章小结 详细介绍了 Android 游戏开发的国内外现状 以及本论文主要研究的方向和 论文的整体结构 从本章中能够清楚的了解本论文的整体架构 对以后的各细 节描述都有清晰的认识 西安工程大学学士学位论文西安工程大学学士学位论文 2 第 2 章 用户需求分析 3 第 2 章 用户需求分析 2 1 系统的架构描述 本项目主要面向游戏爱好者 要求项目不会占用太大的资源 并能够尽量 沿用原有的相对成熟的 java 技术 与 Android 系统进行良好的整合 本设计主 要讲述了飞机大战游戏的基本功能和基于 Android 平台的软件开发 接口的设 计方法 设计最终达成了开始游戏 关闭音效 查看得分 退出游戏等 Android 游戏的基本功能 并且系统能够正常运行 各个页面交互性较好 在整个设计 中基本运用基础的 Android 进行功能编程 其中主要利用了 SurfaceView 实现了 动态界面显示 实现了飞机飞行和发射子弹等效果 在系统规划中先后系统功 能结构图分析了系统所需的各种数据 详细的展现了系统的各个功能模块并给 出了主要功能运行界面图 该游戏软件目前已有比较完善的管理与使用功能 对学习和工作中的学生和工作人员在闲暇时间放松的好软件 本系统主要采用模型 视图 控制器 MVC 架构的设计模式 MVC 架构是 Model View Controller 的缩写 中文翻译为 模型 视图 控制器 MVC 应用程 序总是由这三个部分组成 Event 事件 导致 Controller 改变 Model 或 View 或 者同时改变两者 只要 Controller 改变了 Models 的数据或者属性 所有依赖的 View 都会自动更新 类似的 只要 Controller 改变了 View View 会从潜在的 Model 中获取数据来刷新自己 整个系统的物理架构如下 界面 SurfaceVIe 模型为常用的子弹飞机类 Controller 为 SurfaceHolder callback 结构中的回调函 数 本系统是应用 Android 平台 Android 是一个移动设备的软件平台 由 Linux Java 构成的开源软件 提供包括 SDK Key Apps Middleware Linux Kernel 四个部分在内的全套手机软件方案 开放了基于 Linux 内核以上的开发 工具 从而保证了内容的可移植性和多样性 Android 平台为我们开发应用程序 提供了一套很好的框架 我们可以在这个平台的基础上开发不同的应用程序 也可以开发新的组件供应用程序调用 Android 会同一系列核心应用程序包一起 发布 该应用程序包包括 email 客户端 SMS 短消息程 日历 地图 浏览器 联系人管理程序等 所有的应用程序都是使用 JAVA 语言编写的 本项目也是 由 java 语言编写 开发人员也可以完全访问核心应用程序所使用的 API 框架 该应用程序的架构设计简化了组件的重用 任何一个应用程序都可以发布它的 功能块并且任何其它的应用程序都可以使用其所发布的功能块 不过得遵循框架 的安全性限制 同样 该应用程序重用机制也使用户可以方便的替换程序组件 第 2 章 用户需求分析 4 Android 系统架构图如 2 1 图所示 图 2 1 android 系统架构图 2 2 友好的用户界面 本游戏是直接面对用户的 要求游戏能够提供良好的用户接口 易用的人 机交互界面 要实现这一点 就要求软件应该尽量使用用户熟悉的术语和提示 消息 针对用户可能出现的使用问题 要提供足够的提醒帮助功能 缩短用户 对软件熟悉的过程 本项目采用 Android 平台 从 Android 的角度分析 Android 的开发概括为两类 一是系统开发 包括底层 Linux 内核的裁剪和扩展 硬件驱动的开发和系统移植等 从业人员主要在工作在硬件厂商的公司里 二 是应用开发 主要包括游戏开发 Android 互联网客户端开发和工具软件开发 业内人士预言 Android 系统将成为手机操作系统领域的 windows 一个好的功 能强大系统 必须要进行完善而且全面的系统分析和友好设计 本项目中 之 所以能够有计划地进行下去 的确也是缘于良好的系统分析 如若省略这一步 西安工程大学学士学位论文西安工程大学学士学位论文 5 直接编程 那难度必然加大 以至于在编程过程中又不得不回过头来进行系统 分析 此时必然拖慢进度 打乱整个系统逻辑 其最终的成品也充满变数 本 系统在性能功能上应达到如下需求 1 操作简单 界面友好 完全控件式的页面布局 2 游戏的安全性 正在游戏中对可能发生的突发事件做出处理 例如 电话 来了 或者有信息等 3 软件的响应速度要快 保证用户不会应为等待反馈时间过长而放弃本软件 4 软件的可靠性 能够真正的带给游戏者乐趣 5 在结构上应具有很好的可扩展性 便于将来的功能扩展和维护 根据以上功能 该系统主要以 Android 为操作平台 它提供了很大的自由空间 采用 Java 为开发语言 使系统开发更加方便快捷 本软件的目标即为成功 完 整的体现该系统 让客户满意 2 3 技术选型 项目整体技术选型是这样的 飞机大战游戏开发过程中应用了 java 技术和 Android SDK 提供的类库 动态界面采用 SurfaceView 和一些 XML 文件 后台 控制使用了 SurfaceHolder callback 接口的回调方法 常用的资源文件如子弹 和敌机 战机 背景图都通过 ps 自己处理 系统开始时就启动新线程 一直运 行游戏 知道用户关闭为止 如下为整体流程图如下图 2 2 所示 2 4 系统的开发环境 2 4 1 开发硬件要求 硬件平台 PIV CPU 主频 2 8G 内存 2G 的 PC 机或 PC 服务器 操作系统 Microsoft Windows7 2 4 2 系统的软件开发环境 集成开发环境 Eclipse3 6 JDK6 0 SDK2 1 数据库 MySQL5 0 西安工程大学学士学位论文西安工程大学学士学位论文 6 编程语言 java 开发模式 MVC 模式 surfaceCreated R java 回调方法 图 2 2 技术选型模型图 2 5 关键技术和工具简介 1 Intent Intent 负责对应用中一次操作的动作 动作涉及数据 附加 数据进行描述 Android 则根据此 Intent 的描述 负责找到对应的组件 将 Intent 传递给调用的组件 并完成组件的调用 因此 Intent 在这里起着一个 媒体中介的作用 专门提供组件互相调用的相关信息 实现调用者与被调用者 之间的解耦 2 ADT 与 SDKADT 为 Android 开发工具 Android Development Tools 简称 是在强大的 集成的环境 Eclipse IDE 中构建 Android 应用程序 插件 ADT 扩展了 Eclipse 的功能 让您快速建立新的 Android 项目 创建一 个应用程序的用户界面 加上 Android 框架的 API 组件 调试应用程序使用 Android SDK 工具 以便 APK 分发给应用程序 SDK 即 Software Development Kit 的缩写 中文即 软件开发工具包 广义上指辅助开发某一类软件的相 关文档 范例和工具的集合 它可以简单的为某个程序设计语言提供应用程序 接口 API 的一些文件 但也可能包括能与某种嵌入式系统通讯的复杂的硬件 3 SQLite 数据库 SQLite 是一款轻型的数据库 是遵守 ACID 的关系型 子弹 敌 机 类文件 图片资 源文件 SurfaceVIew 界面 SurfaceHolder Callback 接口 音效资 源文件 西安工程大学学士学位论文西安工程大学学士学位论文 7 数据库管理系统 它的设计目标是嵌入式的 而且目前已经在很多嵌入式产品 中使用了它 它占用资源非常的低 在嵌入式设备中 可能只需要几百 K 的内 存就够了 它能够支持 Windows Linux Unix 等等主流的操作系统 同时能够跟 很多程序语言相结合 比如 Tcl C PHP Java 等 还有 ODBC 接口 同样比 起 Mysql PostgreSQL 这两款开源世界著名的数据库管理系统来讲 它的处理 速度比他们都快 SQLite 第一个 Alpha 版本诞生于 2000 年 5 月 至今已经有 14 个年头 SQLite 也迎来了一个版本 SQLite 3 已经发布 4 Activity Activity 是 Android 开发中非常重要的一个基础类 Activity 提供了和用户交互的可视化界面 创建一个 Activity 一般是继承 Activity 类 并覆盖 Activity 的 onCreate 方法 5 Eclipse 与 JDK Eclipse 是一个集成开发环境简称 IDE 在 Eclipse 环境下开发 JAVA 程序可以大大提高效率 它提供的核心框架和可扩展 的插件机制给广大的程序员提供了无限的便捷 JDK Java Development Kit 是 Sun Microsystems 针对 Java 开发人员的产品 JDK 是整个 Java 的核心 包 括了 Java 运行环境 Java 工具和 Java 基础的类库 JDK 是学好 Java 的第一步 6 SurfaceView SurfaceView 由于可以直接从内存或者 DMA 等硬件接口 取得图像数据 因此是个非常重要的绘图容器 这次我就用两篇文章来介绍 SurfaceView 的用法 网上介绍 SurfaceView 的用法有很多 写法也层出不同 例如继承 SurfaceView 类 或者继承 SurfaceHolder Callback 类等 这个可以 根据功能实际需要自己选择 我这里就直接在普通的用户界面调用 SurfaceHolder 的 lockCanvas 和 unlockCanvasAndPost 2 6 本章小节 本章主要介绍了本系统的技术构架及在实际开发中的用户需求分析 简单 的介绍了项目应用的平台和开发环境 并介绍了关键技术的含义 西安工程大学学士学位论文西安工程大学学士学位论文 8 第 3 章 系统概要设计 9 第 3 章 系统概要设计 系统的概要设计主要是针对系统的总体功能如何设计 如何划分模块 系 统的数据库如何设计进行研究 它为系统的详细设计做铺垫 在系统的设计过 程中起着非常重要的作用 系统设计是信息开发过程中的另一个重要阶段 在 这一阶段中将根据前一阶段逻辑分析的结果 在系统分析报告的基础上 按照 逻辑模型的要求 科学合理地进行新系统的设计 系统设计包含两个方面 首 先是总体结构设计 其次是具体物理模型的设计 这个阶段的主要目标是将反 映用户信息需求的系统逻辑方案转换成可以实施的基于计算机的物理方案 并 为下一阶段的系统实施提供必要的技术资料 本系统采用结构化设计的方法来实现系统总体功能 提高系统的各项指标 即将整个系统合理的划分成各个功能模块 正确地处理模块之间和模块内部的 联系以及它们之间的调用关系和数据联系 定义各模块的内部结构 通过对模 块的设计和模块之间关系的系统来实现整个系统的功能 3 1 模块的划分 本系统整体划分为三个模块 分别为主界面 即 Android 游戏软件登录界 面 游戏模块 游戏运行中的界面模块 用来处理用户触摸响应 还有得分统 计模块 用来存储获的分数 3 1 13 1 1 软件模块设计软件模块设计 用户界面是使用者最直接接触的东西 包括是否能够让客户很轻松 方便 的使用 操作响应时间 主机连接时间 图片综合质量 首页布局质量 首页 信息类型等 一般来说 一个界面主要由下面几个因素构成 1 文字 文字元素是信息传达的主体部分 界面中的文字主要包括标题 信息 文字链接几种主要形式 标题和传统媒体中信息传达的基本作用相同 是内容的简概说明 一般比较醒目 优先编排 文字作为占据页面重要比率的 元素 同时又是信息重要载体 它的字体 大小 颜色和排布对页面整体设计 影响极大 2 图形 图形在界面中具有重要作用 合理的运用图形 可以生动直观 形象地表现设计主题 网页中常用的图形格式包括 jpg 和 png 这两种格式压 第 3 章 系统概要设计 10 缩比高 得到了 Android 平台的支持 图形元素包括标题 背景 主图 链接 图标 四种 3 界面版式 版式是界面设计的重要组成部分 它将文字 图形等视觉元 素进行组合配置 使页面整体视觉效果美观和谐 便于阅读 操作 实现信息 传达的最佳效果 Android 游戏系统的界面设计也是综合了文字 图形等元素 使每一个功 能有文字与图片的共同描述 达到看图就大概知道此键是什么功能的目的 最 终的目的还是为了使用者能够快速上手 不至于因为操作的不得当而放弃此系 统 3 1 23 1 2 软件功能模块软件功能模块 图 3 1 整体结构图 西安工程大学学士学位论文西安工程大学学士学位论文 11 A 游戏模块 负责游戏运行的主线程 在一个 Android 程序开始运行的时候 会单独启动一个 Process 默认的情况下 所有这个程序中的 Activity 或者 Service Service 和 Activity 只是 Android 提供的 Components 中的两种 除 此之外还有 Content Provider 和 Broadcast Receiver 都会跑在这个 Process 一个 Android 程序默认情况下也只有一个 Process 但一个 Process 下却可以有许多个 Thread 在这么多 Thread 当中 有一个 Thread 我们称之为 UI Thread UI Thread 在 Android 程序运行的时候就被创建 是一 个 Process 当中的主线程 Main Thread 主要是负责控制 UI 界面的显示 更新 和控件交互 在 Android 程序创建之初 一个 Process 呈现的是单线程模型 所有的任务都在一 个线程中运行 因此 我们认为 UI Thread 所执行的每一 个函数 所花费的时间都应该是越短越好 而其他比较费时的工作 访问网络 下载数据 查询数据库等 都应该交由子线程去执行 以免阻塞主线程 那 么 UI Thread 如何和其他 Thread 一起工作呢 常用方法是 诞生一个主线程 的 Handler 物件 当做 Listener 去让子线程能将讯息 Push 到主线程的 Message Quene 里 以便触发主线程的 handlerMessage 函数 让主线程知 道子线程的状态 并在主线程更新 UI B 页面布局模块 图形模块 虽然有的游戏不需要不断的重新绘制屏幕 但 是假设你想要的游戏需要不间断的绘制屏幕 这是个简单的概念并且你不需要 去关注任何脏标记或者去关注在某些游戏状态改变的情况下重新绘制屏幕 我 们已经知道 UI 线程不是一直不间断的运行的 而是在事件的驱动下有操作系统 调度运行的 这就是我们为什么实例化第二个线程 也就是我们通常说的渲染 线程 这个线程是由 Graphics 模块所创建 Graphics 模块本身由应用模块在 程序启动的时候实例化 渲染线程执行一个无限循环 由于应用程序的生命周 期事件 它可能会被暂停或者恢复 作为开发者 你可以通过注册一个 RenderListerner 将这个线程与图形模块连接起来 在我们进入这些方法的详解 之前 我先给你介绍一些细节 libgdx 使用 OpenGl ES 这个是移动设备上硬 件加速图像渲染的工业标准 OpenGL ES 同一个叫做 EGL 的东西一起使用 EGL 负责设立一个窗口系统和图像硬件的链接 它创建一个渲染表面 用户可以添 加一个用户界面组件到上面 图形硬件可以不通过使用 UI 工具包直接渲染 OpenGL ES 自身额外的添加了一个叫做图形上下文的东西 他用于管理驻留在 显存中的图形资源 举个例子 这些资源可以是一个纹理 它从本质上来说就 是一张位图 OpenGLES 将其建立在 EGL 的表面和背景 通过图形处理处理器获 得高质量的图片 西安工程大学学士学位论文西安工程大学学士学位论文 12 C 游戏配置模块 对于音效的管理 D 游戏介绍模块 游戏有智力游戏和活动性游戏之分 前者如下棋 积木 打 牌等 后者如追逐 接力及利用球 棒 绳等器材进行的活动 多为集体活动 并有情节和规则 具有竞赛性 当前日常用语中的 游戏 多指各种平台上的 电子游戏 电子游戏有单机版和网络游戏 3 2 主界面设计 图 3 2 主界面设计图 A 开始游戏 其中一个 Activity 在其调用 SetContentView 时 调用我们自 己定义的游戏界面 该游戏界面使我们自己通过一个类实现的游戏界面 在该 类中继承了 SurfaceView 并实现了 SurfaceHolder callBack 接口和 runnable 接口 在该类的回调函数 surfaceCreated 中启动游戏线程并一直进行游戏直 到出现失误时就关闭该线程 飞机大战 功能块 开始游戏 退出游戏 音效管理 关于我们 历史记录 西安工程大学学士学位论文西安工程大学学士学位论文 13 B 退出游戏 关闭该应用 当我们玩游戏时 想休息会或者想退出游戏时点击 该按钮 退出游戏 C 音效管理 可以管理在玩游戏时对背景音乐的管理 D 描述该软件的开发时间 开发人员和本软件的一些基本信息介绍 3 3 游戏界面设计 采用分层管理 具体效果如 3 3 图所示 图 3 3 游戏界面图 3 4 系统包及其资源规划 在软件项目管理过程中一个关键的活动是制定项目计划 它是软件开发工 作的第一步 项目计划的目标是为项目负责人提供一个框架 使之能合理地估 算软件项目开发所需的资源 经费和开发进度 并控制软件项目开发过程按此 计划进行 在做计划时 必须就需要的人力 项目持续时间及成本作出估算 这种估算大多是参考 以前的花费作出的 软件项目计划包括二个任务 研究和 西安工程大学学士学位论文西安工程大学学士学位论文 14 估算 即通过研究确定该软件 项目的主要功能 性能和系统界面 3 4 13 4 1 系统包管理如下系统包管理如下 本游戏采用 Eclipse 中开发 Android 项目的默认框架 采用 Eclipse 开发 的框架图如图3 4结构所示 图3 4 项目资源包管理 3 4 23 4 2 SqliteSqlite 数据库数据库 SQLite 数据库是一款轻型的数据库 它嵌入在 Android 系统中 由于没有 数据库操作的图形界面和客户端 所以我们只能通过命令进入 Android 系统中 进行数据库的操作 Android 给我们提供了一系列系统工具可以访问 SQLite 数 据库 Android Debug Bridge ADB 是 Android 的一个通用调试工具 它可以 西安工程大学学士学位论文西安工程大学学士学位论文 15 更新设备或模拟器中的代码 可以管理预定端口 可以在设备上运行 shell 命 令 我们知道 android 是基于 Linux 内核 它的内部文件结构也是采用 Linux 文件组织方式 因此访问它的文件结构需要使用 shell 这次我们就会用 shell 来访问 android 应用中的 SQLite 数据库文件 1 运行 cmd 切换到 android sdk 目录 运行 adb exe 加上参数 shell 出现 号就代表进入了 shell 命令模式 注意 adb 要在 Android 模拟器 运行时才能进入 shell 执行如下图 3 5 所示 图 3 5 进入 shell 命令模式 2 shell 命令记住两个基本命令 ls 和 cd 类似 windows 命令提示行中的 dir 和 cd 代表列出当前目录下文件列表和进入到指定目录 了解这两个命令 之后 就可以找到 data data 项目包名 databases 找到数据库文件 接下来 就是使用 sqlite 管理工具来进行操作了 键入 sqlite3 数据库名就进入了 sqlite 管理模式了 执行过程如下图 3 6 所示 西安工程大学学士学位论文西安工程大学学士学位论文 16 图 3 6 进入 sqlite 管理模式 3 4 33 4 3 RunableRunable 接口以及与接口以及与 ThreadThread 的区别的区别 在 java 中可有两种方式实现多线程 一种是继承 Thread 类 一种是实现 Runnable 接口 Thread 类是在 java lang 包中定义的 一个类只要继承了 Thread 类同时覆写了本类中的 run 方法就可以实现多线程操作了 但是一个 类只能继承一个父类 这是此方法的局限 下面看例子 package org thread demo class MyThread extends Thread private String name public MyThread String name super this name name public void run for int i 0 i 10 i System out println 线程开始 线程开始 this name i i package org thread demo 西安工程大学学士学位论文西安工程大学学士学位论文 17 public class ThreadDemo01 public static void main String args MyThread mt1 new MyThread 线程线程 a MyThread mt2 new MyThread 线程线程 b mt1 run mt2 run 但是 此时结果很有规律 先第一个对象执行 然后第二个对象执行 并没有 相互运行 在 JDK 的文档中可以发现 一旦调用 start 方法 则会通过 JVM 找到 run 方法 下面启动 start 方法启动线程 package org thread demo public class ThreadDemo01 public static void main String args MyThread mt1 new MyThread 线程线程 a MyThread mt2 new MyThread 线程线程 b mt1 start mt2 start 这样程序可以正常完成交互式运行 那么为啥非要使用 start 方法启动多线 程呢 在 JDK 的安装路径下 src zip 是全部的 java 源程序 通过此代码找到 Thread 中的 start 方法的定义 可以发现此方法中使用了 private native void start0 其中 native 关键字表示可以调用操作系统的底层函数 那么这样的 技术成为 JNI 技术 java Native Interface Runnable 接口 在实际开发中一个多线程的操作很少使用 Thread 类 而是通过 Runnable 接口 完成 public interface Runnable public void run 例子 package org runnable demo 西安工程大学学士学位论文西安工程大学学士学位论文 18 class MyThread implements Runnable private String name public MyThread String name this name name public void run for int i 0 i 100 i System out println 线程开始 线程开始 this name i i 但是在使用 Runnable 定义的子类中没有 start 方法 只有 Thread 类中才有 此时观察 Thread 类 有一个构造方法 public Thread Runnable targer 此构 造方法接受 Runnable 的子类实例 也就是说可以通过 Thread 类来启动 Runnable 实现的多线程 start 可以协调系统的资源 package org runnable demo import org runnable demo MyThread public class ThreadDemo01 public static void main String args MyThread mt1 new MyThread 线程线程 a MyThread mt2 new MyThread 线程线程 b new Thread mt1 start new Thread mt2 start 两种实现方式的区别和联系 在程序开发中只要是多线程肯定永远以实现 Runnable 接口为主 因为实现 Runnable 接口相比继承 Thread 类有如下好处 避免点继承的局限 一个类可以继承多个接口 适合于资源的共享 以卖票程序为例 通过 Thread 类完成 package org demo dff class MyThread extends Thread private int ticket 10 西安工程大学学士学位论文西安工程大学学士学位论文 19 public void run for int i 0 i0 System out println 卖票 卖票 ticket this ticket 下面通过三个线程对象 同时卖票 package org demo dff public class ThreadTicket public static void main String args MyThread mt1 new MyThread MyThread mt2 new MyThread MyThread mt3 new MyThread mt1 start 每个线程都各卖了每个线程都各卖了 10 张 共卖了张 共卖了 30 张票张票 mt2 start 但实际只有但实际只有 10 张票 每个线程都卖自己的票张票 每个线程都卖自己的票 mt3 start 没有达到资源共享没有达到资源共享 如果用 Runnable 就可以实现资源共享 下面看例子 package org demo runnable class MyThread implements Runnable private int ticket 10 public void run for int i 0 i0 System out println 卖票 卖票 ticket this ticket package org demo runnable public class RunnableTicket 西安工程大学学士学位论文西安工程大学学士学位论文 20 public static void main String args MyThread mt new MyThread new Thread mt start 同一个同一个 mt 但是在 但是在 Thread 中就不可以 如果用同一中就不可以 如果用同一 new Thread mt start 个实例化对象个实例化对象 mt 就会出现异常 就会出现异常 new Thread mt start 虽然现在程序中有三个线程 但是一共卖了 10 张票 也就是说使用 Runnable 实现多线程可以达到资源共享目的 Runnable 接口和 Thread 之间的联系 public class Thread extends Object implements Runnable 发现 Thread 类也是 Runnable 接口的子类 3 5 本章小结 本章详细的划分了整个项目的开发模块 及各个模块的详细设计 最后对 整个项目的包结构和项目资源路径做了简单的剖析和介绍 第 4 章 系统功能的实现 21 第 4 章 系统功能的实现 界面是呈现给用户的 一个界面呈现的友好性会决定用户是否会接受该系 统 对于 Android 系统而言 界面的友好布局 信息的简单明了都至关重要 4 1 主界面的功能实现 主界面的设计如下图 4 1 所示 图 4 1 系统主界面 在工程的 res layout 目录下 创建了一个名称为 activity main xml 的 布局文件 该文件主要为生成主界面做配置 其布局文件代码如下 1 13 20 27 34 41 主界面布局文件 主界面中有四个按钮分别为开始游戏 退出游戏 关闭音效 关于我们 其中 每个按钮都绑定了一个监视器 当按下该按钮时 该监视器将触发点击事件 其中为开始按钮绑定的监视器如下 1 public class listener implements View OnClickListener 2 Override 3 public void onClick View v 4 intent new Intent this viewActivity class 5 startActivity intent 6 7 Intent对象介绍 Intent 意图 主要是解决Android应用的各项组件之间的通讯 Intent负责对应用中一次操作的动作 动作涉及数据 附加数据进行描述 Android则根据此Intent的描述 负责找到对应的组件 将 Intent传递给调用 的组件 并完成组件的调用 因此 Intent在这里起着一个媒体中介的作用 专门提供组件互相调用的相关信息 实现调用者与被调用者之间的解耦 例如 在一个联系人维护的应用中 当我们在一个联系人列表屏幕 假设对 应的Activity为listActivity 上 点击某个联系人后 希望能够跳出此联

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论