毕业设计(论文)-基于Android系统的BusyBee手游开发.doc_第1页
毕业设计(论文)-基于Android系统的BusyBee手游开发.doc_第2页
毕业设计(论文)-基于Android系统的BusyBee手游开发.doc_第3页
毕业设计(论文)-基于Android系统的BusyBee手游开发.doc_第4页
毕业设计(论文)-基于Android系统的BusyBee手游开发.doc_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

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

文档简介

成都东软学院毕业论文论文题目 基于Android系统的 BusyBee手游开发 学生姓名 TL 学 号 xxxxxxxxxxxx 专业班级 软件工程 xxxxxxx 指导教师 xxxxxxxxxxxxxx 院系名称 计算机科学与技术系 2015年5月8日摘要摘 要随着移动互联网的飞速发展、智能手机的逐渐普及,手机游戏成为了越来越多的年轻人的娱乐方式。经调查,超过50%以上的人都会用手机玩游戏,手机游戏(以下简称“手游”)已逐渐占据整个游戏市场(包括PC端等)的份额。本论文提出了一款基于Android系统的BusyBee手游开发系统,并对其具体设计、实现进行了说明。在游戏设计实现过程中,我们参考了用户习惯、时下流行的游戏元素,并结合了Android自身系统特点,竭力打造一款不失创意又符合用户交互习惯的系统。BusyBee是一款益智动作类游戏,主要包括选择关卡、开始游戏、暂停游戏、重新开始游戏、判断游戏胜利和失败、重置游戏、设置音乐和音效、腾讯微博分享、游戏评级功能模块。BusyBee是由小组共同完成,我主要负责分析与设计、编码工作,整个开发我们采用了迭代递增的方式,分为三个阶段,每个阶段相应输出需求分析、概要设计、详细设计、编码、测试报告(第一个阶段之前做了调研,有相应调研报告),本论文总结了三个阶段的情况,主要从Android技术与理论、需求分析与系统概要设计、详细设计、编码实现等方面做了相应阐述。关键词:安卓、手机游戏、游戏框架、统一建模语言ABSTRACTABSTRACTWith the developmentof mobile Internet and intelligentmobile phone,the mobile phonegames is becoming more andmore popular among the young people.After investigation,more than 50%peopleplay gameswith themobile phone,mobile phonegame(hereinafter referred to as theMobile Games)has been graduallyoccupy the entiregame market(including PC)of the share.This paper presents a BusyBee based Mobile Games development system of Android system, and the design, realization are presented. In the game design in the process of implementation, we reference the user habit and combined with the characteristics of Android system itself, to create a both creative and adaptive game system.BusyBee is an action puzzle game, mainly including the choose levels, start the game, pause the game, restart the game, the game victory and failure judgment, reset the game, set the music and sound , Tencent micro-blog sharing, game rating function module.BusyBee is accomplished by the group together, I mainly responsible for the analysis 、design and coding, we use iteration increments, the all system is divided into three stages, each stage needs analysis, outline design, detailed design, coding, test report,in this report, summarizes the three stages of the situation, mainly from the Android technology and theory, demand analysis and system outline design, detailed design, code realization etc.Keywords:Android、Phone Game、Games Framework、UMLI目录 目 录1 绪论11.1 课题背景11.2 国内外研究现状11.3 课题研究意义21.4 论文结构安排22 Android技术与理论32.1 Android系统开发简介32.1.1 Android技术简介32.1.2 SurfaceView游戏框架32.1.3 Android存储方式32.2 Android应用的构成和工作机制42.2.1 Activity42.2.2 Service服务42.2.3 Content Provider内容提供者42.2.4 BroadcastReceiver广播接收器53 需求分析与系统概要设计63.1 总体需求63.1.1 研究内容63.1.2 研究方案63.2 需求规定73.2.1 对功能的规定73.2.2 对性能的规定83.2.3 系统顶层活动图83.3 分析93.3.1 顶层用例图103.3.2 参与者103.3.3 用例规约与分析113.3.3.1 选择关卡(Select Level)113.3.3.2开始游戏(Start Game)123.3.3.3重新开始(Restart Game)143.3.3.4暂停游戏(Pause Game)173.3.3.5游戏胜利(Win Game)193.3.3.6游戏失败(Lose Game)203.3.3.7游戏评级(Rank Game)233.3.3.8社交分享(Social Share)253.3.3.9重置游戏(Reset Game)273.3.3.10设置音乐(Set Music)29II3.3.3.11设置音效(Set Sound)313.3.3.12观看背景视频(Watch Video)323.4 概要设计343.4.1 系统架构图353.4.2 系统架构说明353.4.3 数据存储设计354 系统详细设计364.1 开发工具和平台环境374.2 选择关卡模块设计374.2.1 实现类设计374.2.2 顺序图394.3 开始游戏模块设计404.3.1 实现类设计404.3.2 顺序图464.4 重新开始模块设计474.4.1 实现类设计474.4.2 顺序图504.5 暂停游戏模块设计514.5.1 实现类设计514.5.2 顺序图544.6 游戏胜利模块设计554.6.1 实现类设计554.6.2 顺序图594.7 游戏失败模块设计594.7.1 实现类设计594.7.2 顺序图624.8 游戏评级模块设计634.8.1 实现类设计644.8.2 顺序图674.9 社交分享模块设计674.9.1 实现类设计674.9.2 顺序图704.10 重置游戏模块设计714.10.1 实现类设计714.10.2 顺序图744.11 设置音乐模块设计754.11.1 实现类设计754.11.2 顺序图78III4.12 设置音效模块设计784.12.1 实现类设计784.12.2 顺序图814.13 观看背景视频模块设计814.13.1 实现类设计814.13.2 顺序图835 编码实现835.1 主要代码84结 论87谢 辞88参 考 文 献89IV绪论1 绪论1.1 课题背景如今的手机市场,智能手机早已占据了大部分份额,其中又以Android,ios,Windows Phone 8操作系统最为突出。经调查,益智休闲类的手游一直都备受青睐,原因有几点:(1)益智类游戏时间较短,相比手机中的RPG(角色扮演类游戏)、音乐游戏来说,每一关的游戏时间不长;(2)用户大多在空闲时候选择玩手游,益智游戏不仅有效地打发了时间,也可以开发智力,轻松之余锻炼自己的脑力。然而,如今益智类游戏市场上,大多产品都是属于昙花一现或山寨泛滥,因此,大胆创新而又与众不同的益智游戏正是用户急切需求的。1.2 国内外研究现状随着移动互联网的飞速发展、智能手机的逐渐普及,手机游戏成为了越来越多的年轻人的娱乐方式。经调查,超过50%以上的人都会用手机玩游戏,手机游戏(以下简称“手游”)已逐渐占据整个游戏市场(包括PC端等)的份额。手游的蓬勃发展之余,也存在很多问题,就中国市场来说,第一个问题是盈利模式不成熟。到目前为止中国手游用户的付费比例相当相当的小,付费金额也不高。第二个问题是流量问题。流量问题有两个,一个是指使用流量,另一个指的是移动搜索入口提供的流量、平台提供的流量。第三个问题就是竞争问题。因为手游公司门槛偏低,手游公司扎堆涌现的现象非常严重,其带来的后果更多的是产品同质化,版权因素、开发过程中的借鉴因素、缺乏创新意识造成的手游同质化问题已经成为了中国手游市场发展的一大瓶颈。第四个问题就是市场格局问题。老牌网游巨头腾讯等向手游的成功转型和新贵触控科技等在早期抓住机遇占据了大部分市场份额的双重夹击下,中小型手游公司的生存让人堪忧。解决以上问题的关键在于产品自身品质和产品的推广,而根据游戏市场特有性质,一款好的游戏必须是具有其玩法创新性、操作简易性、画面美观性、音效特效高品质性等特点。1.3 课题研究意义BusyBee手游系统是在小学期和综合实训已经实现部分功能的项目,我们希望在更充沛的市场调研和对Android进阶学习下,通过二次开发改进和完善本游戏系统,同时通过系统开发培养自主学习即收集、整理、分析文献等能力,加深对Android游戏研发背景和技术的了解与掌握,通过团队协作的方式,提高我们团队协作能力!1.4 论文结构安排本文首先给出了系统的研究背景,对当前手机游戏的发展现状做了简单的介绍;接下来分析了Android技术与理论,主要从Android系统本身、Android应用构成和工作机制两方面进行了阐述;最后从需求分析与概要设计、详细设计和编码三个方面详细地说明了BusyBee游戏系统的整个实现过程。87Android技术与理论2 Android技术与理论2.1 Android系统开发简介2.1.1 Android技术简介Android应用程序由java语言编写,Android SDK工具编译代码、数据和资源文件,并且将其打包成一个后缀名为.apk的APK文件,一个APK文件包含Android应用的所有内容,并且是Android设备用来安装Android应用的安装包文件。Android中有四种不同类型的应用程序组件,每种类型服务于不同的目的,由不同的生命周期定义了创建和销毁等状态。2.1.2 SurfaceView游戏框架在Android系统中,有一种特殊的视图称为SurfaceView,它拥有独立的绘图表面,即它不与其宿主窗口共享同一个绘图表面。由于拥有独立的绘图表面,因此SurfaceView的UI就可以在一个独立的线程中进行行绘制。又由于不占用主线程资源,SurfaceView一方面可以实现复杂而高效的UI,另一方面又不会导致用户输入得不到及时响应。2.1.3 Android存储方式Android提供了四种存储方式,分别是SharePreference、SQLite、Content Provider和File,每种存储方式都有其固有特点,BusyBee游戏系统因为目前版本存储的数据不多,所以采用SharePreference的存储方式。SharedPreference是Android提供的一种轻量级的数据存储方式,主要用来存储一些简单的配置信息,其以键值对的方式存储,使得我们能很方便进行读取和存入。SQLite是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。ContentProvider为存储和获取数据提供统一的接口,可以在不同的应用程序之间共享数据。File即常说的文件(I/O)存储方法,常用于存储大数量的数据。2.2 Android应用的构成和工作机制2.2.1 ActivityActivity是Android组件中最基本也是最为常见用的四大组件之一。Activity是一个应用程序组件,其中所有操作都与用户密切相关,是一个负责与用户交互的组件,可以通过setContentView(View)来显示指定控件。在一个android应用中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Activity之间通过Intent进行通信。2.2.2 Service服务Service是android 系统中的四大组件之一,它跟Activity的级别差不多,但不能自己运行只能后台运行,并且可以和其他组件进行交互。service可以在很多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,总之Service总是藏在后台的。Service启动两种方式:context.startService() 和context.bindService()。2.2.3 Content Provider内容提供者android平台提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序,其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据,只有需要在多个应用程序间共享数据时才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中,它的好处是统一数据访问方式。2.2.4 BroadcastReceiver广播接收器广播接收器是一个用来响应系统范围内广播通知信息的组件。许多广播起源于系统,例如,广播通知屏幕已关闭、电量低、拍摄了一张图片等。应用程序也可以进行广播,例如,让其他应用程序知道有些数据已经下载到设备上可以让它们使用。虽然广播接收器没有用户界面,但它们可以创建状态栏通知提醒用户当前有广播事件发生。更常见的情况是广播接收器作为一个连接到其他组件的通道并且做非常少量的工作。例如,它可能会启动一个service 服务进行基于事件的一些工作。需求分析与系统概要设计3 需求分析与系统概要设计3.1 总体需求3.1.1 研究内容本论文主要研究Android系统下的手游开发,研究内容包括Android手游市场背景、Android手游开发技术。我们以一款益智动作类游戏BusyBee的开发为契机,对Android市场手游用户、手游产品做了调研,对Android技术框架进行了学习,通过团队开发的形式感受了Android手游开发和其他项目开发所不同的团队配合。3.1.2 研究方案BusyBee手游系统到目前为止完成了重置游戏、设置音乐和音效、选择关卡、开始游戏、暂停游戏、重新开始游戏、判断游戏胜利和失败、腾讯微博分享、游戏评级功能模块的初步设计与实现,存在的问题主要有以下几个方面:碰撞检测问题。BusyBee手游系统中的碰撞检测采用的矩形碰撞检测,当蜜蜂在上一个草地下侧面飞行时,会与下一个草地上侧面的得分道具、障碍物道具等碰撞误测; 关卡问题。因为时间限制,BusyBee手游系统目前只有一个关卡,该关卡主要包括主角蜜蜂、得分道具和静态障碍物;社交功能问题。BusyBee手游系统目前已实现腾讯微博分享功能,但是形式比较单调,社交性质弱,只是系统设定好文字,玩家选择分享发送固定文字的形式;音效问题。BusyBee手游系统目前只有部分按钮增加了音效功能,并且蜜蜂得分和与障碍物碰撞没有设置音效,不能从音效方面很好让玩家全感受游戏;系统架构问题。系统架构的设计层次不分明,并且与实际实现有不一致;编码规范问题。因为详细设计阶段和编码有脱节,所以在类命名、函数命名、变量命名、注释等方面存在不规范。为解决上述问题,我们将在整个二次开发过程中严格执行编码规范,对BusyBee游戏系统架构进行改进和优化;采用SurfaceView作为我们的游戏框架,在现有关卡基础上设计更丰富多样的关卡,比如增加动态障碍物、追击障碍物、限时功能、排行功能等,除此之外我们将对按钮音效和蜜蜂与道具碰撞的音效重新统一处理,让玩家全方位感受到游戏的乐趣。简言之,在规范文档优化代码以增强系统的兼容性的同时,我们将在现有功能的基础上,更改以及新增相关功能,使我们的BusyBee游戏系统更具有生命力!3.2 需求规定3.2.1 对功能的规定1 游戏开始:在玩家选择了关卡后,进入游戏界面,玩家点击游戏开始按钮后即游戏开始,蜜蜂开始围绕草坪运动。在蜜蜂可上下跳跃的草坪区间内,点击游戏开始按钮,蜜蜂将在两个草坪之间跳跃。2 游戏暂停:在游戏进行时,玩家点击暂停游戏按钮后,当前游戏暂停,所有运动物件停止运动,暂停游戏按钮变成继续游戏按钮,玩家点击继续游戏按钮后,之前停止运动的物件再次沿刚才的路径运动,游戏继续进行。3 重新游戏:在游戏进行时,玩家点击重新开始按钮后,当前游戏将恢复到进入游戏的初始状态,玩家点击游戏开始按钮后蜜蜂将会运动,游戏重新开始。4 观看背景视频:在玩家玩关卡一前播放的视频短片,该视频介绍这款游戏的背景。在视频右下角有“跳过视频”按钮,点击该按钮后,可以跳过视频,直接开始玩游戏。5 社交分享:游戏胜利后,在游戏胜利界面有“社交分享”按钮,玩家点击社交分享按钮,输入腾讯微博的账号和密码,系统自动发送分享信息。信息如果发送成功,显示分享成功;信息如果发送失败,显示分享失败。6 关卡选择:玩家在游戏主界面点击“开始游戏”按钮,系统跳转至关卡选择界面。在关卡选择界面,玩家自己选择已解锁激活的关卡进行游戏。未解锁的关卡必须完成上一个关卡后,系统才会解锁激活。7 重置游戏:玩家在游戏设置界面选择游戏重置后,游戏将锁住除了第一关卡以外的所有关卡。8 设置音乐:音乐设置的目的是提供玩家关闭或打开游戏的背景音乐,若游戏背景音乐呈打开状态时,游戏设置界面的音乐设置按钮显示打开的状态,此时玩家可以通过点击关闭音乐;若游戏背景音乐呈关闭状态时,游戏设置界面的音乐设置按钮显示关闭的状态,此时玩家可以通过点击打开音乐。9 设置音效:音效设置的目的是提供玩家关闭或打开游戏的音效,包括按钮声音、蜜蜂与得分道具碰撞声音、蜜蜂与障碍物碰撞声音、蜜蜂与蜂巢碰撞声音,若游戏音效呈打开状态时,游戏设置界面的音效设置按钮显示打开的状态,此时玩家可以通过点击关闭所有音效;若游戏音效呈关闭状态时,游戏设置界面的音效设置按钮显示关闭的状态,此时玩家可以通过点击打开所有音效。10 游戏胜利:玩家在规定的时间内获取所有花朵并回到蜂巢内,即游戏胜利。11 游戏失败:玩家未能在规定的时间内获取所有花朵并回到蜂巢或在游戏途中碰到障碍物,即游戏失败。12 游戏评级:游戏胜利之后自动进入到胜利界面,系统会对当前关卡游戏的结果进行评级,并将级别显示在胜利界面中,用五角星表示,一颗星表示一级,两颗星表示两级,三颗星表示三级,三级为最高级别。3.2.2 对性能的规定无论玩家进行任何操作,游戏应及时地进行反应,反应时间应该在3秒内。3.2.3 系统顶层活动图图3.1 系统顶层活动图3.3 分析3.3.1 顶层用例图图3.2 系统顶层用例图3.3.2 参与者玩家:该角色可以在选择关卡后开始、暂停或重新开始游戏,另外,该角色还可以对游戏的胜利结果进行分享以及对游戏的背景音乐和音效进行设置等。3.3.3 用例规约与分析3.3.3.1 选择关卡(Select Level)1 用例图图3.3选择关卡用例图2 用例规约n 前置条件:玩家已进入游戏关卡选择界面n 后置条件:游戏系统显示了玩家选择关卡结果n 执行者:玩家n 基本路径1. 玩家请求选择关卡。2. 系统验证玩家请求进行的关卡已经解锁。3. 系统反馈该关卡的游戏界面。n 扩展路径2a.玩家所选关卡还未解锁2a1.系统验证玩家请求进行的关卡未解锁。2a2.系统反馈关卡未解锁结果。n 字段列表2. 关卡=关卡序号+关卡状态2. 游戏=关卡3类图图3.4 选择关卡类图4 顺序图(或状态图、活动图)图3.5 选择关卡顺序图3.3.3.2开始游戏(Start Game)1 用例图图3.6开始游戏用例图2 用例规约n 前置条件:玩家已进入游戏界面n 后置条件:游戏系统已开始游戏n 执行者:玩家n 基本路径1、 玩家请求开始游戏。2、 游戏系统设置游戏状态为开始。3、 游戏系统返回开始游戏界面。n 扩展路径n 字段列表2 游戏状态=开始的游戏状态2 游戏=游戏状态3 类图图3.7 开始游戏类图4 顺序图(或状态图、活动图) 图3.8开始游戏顺序图图3.9游戏状态图3.3.3.3重新开始(Restart Game)1 用例图图3.10重新开始用例图2 用例规约n 前置条件:玩家已开始游戏n 后置条件:游戏系统已反馈重新开始游戏界面n 执行者:玩家n 基本路径1、 玩家请求重新开始游戏。2、 游戏系统设置游戏状态为重新开始。3、 游戏系统反馈重新开始游戏界面。n 扩展路径n 字段列表2 游戏状态=重新开始的游戏状态2 游戏=游戏状态3类图图3.11 重新开始类图4 顺序图(或状态图、活动图)图3.12重新开始顺序图图3.13游戏状态图3.3.3.4暂停游戏(Pause Game)1 用例图图3.14 暂停游戏用例图2 用例规约n 前置条件:玩家已开始游戏n 后置条件:游戏系统已暂停游戏n 执行者:玩家n 基本路径1、 玩家请求暂停游戏。2、 游戏系统设置游戏状态为暂停。3、 游戏系统反馈暂停游戏界面。n 扩展路径n 字段列表2 游戏状态=暂停的游戏状态2 游戏=游戏状态3 类图图3.15暂停游戏类图4 顺序图(或状态图、活动图)图3.16暂停游戏顺序图图3.17 游戏状态图3.3.3.5游戏胜利(Win Game)1 用例图图3.18游戏胜利用例图2 用例规约n 前置条件:玩家已开始游戏n 后置条件:游戏系统已反馈游戏胜利结果,游戏系统解锁下一关卡n 执行者:玩家n 基本路径1. 玩家玩游戏胜利。2. 游戏系统设置游戏状态为游戏胜利,并将下一关卡状态设置为已解锁。3. 游戏系统反馈游戏胜利界面。n 扩展路径n 业务规则1玩家玩游戏胜利规则:玩家在30S内操作蜜蜂完成3多花的采蜜并顺利回到通道(门),游戏则为成功。n 字段列表2 游戏状态=胜利的游戏状态2 游戏=游戏状态3 类图图3.19 游戏胜利类图4 顺序图(或状态图、活动图)图20 游戏胜利顺序图3.3.3.6游戏失败(Lose Game)1 用例图图3.21 游戏失败用例图2 用例规约n 前置条件:玩家已开始游戏n 后置条件:游戏系统已反馈游戏失败结果n 执行者:玩家n 基本路径1、 玩家玩游戏失败。2、 游戏系统设置游戏状态为游戏失败。3、 游戏系统反馈游戏失败界面。n 扩展路径n 业务规则1玩家玩游戏失败规则:玩家在游戏过程中和障碍物碰撞则为失败;玩家在30S内未能完成游戏则为失败n 字段列表2 游戏状态=失败的游戏状态2 游戏=游戏状态3 类图图3.22 游戏失败类图4 顺序图(或状态图、活动图)图3.23 游戏失败顺序图图3.24 游戏状态图3.3.3.7游戏评级(Rank Game)1 用例图图3.25 游戏评级用例图2 用例规约n 前置条件:玩家已获得游戏胜利n 后置条件:系统反馈评级结果n 执行者:玩家n 基本路径1. 玩家玩游戏胜利。2. 系统获得该关卡游戏星级。3. 系统反馈游戏评级界面。n 扩展路径n 业务规则1游戏评级规则:游戏评级分为三个等级,其中20-30S内取得胜利则为三颗星;10-20S内取得胜利则为两颗星;0-10取得胜利则为一颗星。n 字段列表2.游戏=关卡2.关卡=游戏星级3 类图图3.26 游戏评级类图4 顺序图(或状态图、活动图)图3.27 游戏评级顺序图3.3.3.8社交分享(Social Share)1 用例图图3.28 社交分享用例图2 用例规约n 前置条件:1. 玩家已获得游戏胜利2. 移动设备已连上网络n 后置条件:系统成功分享游戏信息至社交网站n 执行者:玩家n 基本路径1. 玩家请求分享游戏。2. 系统反馈社交网站列表。3. 玩家选择社交网站类型。4. 系统验证请求并连接至社交分享网站。5. 系统反馈社交分享网站登录界面。6. 玩家登录社交网站。7. 系统验证玩家登录成功。8. 系统分享游戏信息至社交网站。9. 系统显示分享成功。n 扩展路径6a.玩家登录社交网站失败6a1.系统验证玩家登录失败。6a2.系统不分享游戏信息到社交网站。n 字段列表3.社交网站列表=社交网站类型3.游戏=社交网站列表3 类图图3.29 社交分享类图4 顺序图(或状态图、活动图)图3.30 社交分享顺序图3.3.3.9重置游戏(Reset Game)1 用例图图3.31 重置游戏用例图2 用例规约n 前置条件:玩家已进入游戏n 后置条件:除第一关以外的所有关卡呈锁起状态n 执行者:玩家n 基本路径1、 玩家请求重置游戏。2、 系统反馈确定重置游戏界面。3、 玩家选择确定重置游戏。4、 游戏系统设置关卡状态,即锁住除第一关以外的所有关卡。5、 游戏系统反馈重置游戏结果。n 扩展路径3a.玩家选择取消重置游戏3a1.玩家选择取消重置游戏。3a2.游戏系统反馈取消重置游戏结果。n 字段列表 2、关卡=关卡序号+关卡状态 2、设置关卡=设置关卡的序号+设置关卡的状态3 类图图3.32 重置游戏类图4 顺序图(或状态图、活动图)图3.33 重置游戏顺序图3.3.3.10设置音乐(Set Music)1 用例图图3.34 设置音乐用例图2 用例规约n 前置条件:玩家已进入游戏n 后置条件:游戏系统的背景音乐已打开或关闭n 执行者:玩家n 基本路径1、 玩家请求设置音乐,即打开或关闭游戏背景音乐。2、 游戏系统设置音乐状态,即打开或关闭游戏背景音乐。3、 游戏系统反馈设置音乐结果。n 扩展路径n 字段列表2、 音乐=音乐文件+音乐状态2、 游戏=游戏音乐的文件集合+游戏音乐的状态集合3 类图图3.35 设置音乐类图4 顺序图(或状态图、活动图)图3.36 设置音乐顺序图3.3.3.11设置音效(Set Sound)1 用例图图3.37 设置音效用例图2 用例规约n 前置条件:玩家已进入游戏n 后置条件:游戏系统的游戏音效已打开或关闭n 执行者:玩家n 基本路径1、 玩家请求设置音效,即打开或关闭游戏音效。2、 游戏系统设置音效状态,即打开或关闭游戏音效。3、 游戏系统返回设置音效结果。n 扩展路径n 字段列表2 游戏音效=音效文件+音效状态2 游戏=游戏音效文件集合+游戏音效状态集合3 类图图3.38 设置音效类图4 顺序图(或状态图、活动图)图3.39 设置音效顺序图3.3.3.12观看背景视频(Watch Video)1 用例图图3.40 观看背景视频用例图2 用例规约n 前置条件:玩家已进入游戏关卡界面n 后置条件:游戏系统已进入第一关游戏界面n 执行者:玩家n 基本路径1、 玩家请求观看游戏背景视频。2、 游戏系统反馈游戏背景视频。3、 游戏系统检测游戏背景视频播放状态。4、 游戏系统反馈第一关游戏界面。n 扩展路径3a.玩家选择跳过游戏背景视频3a1.游戏系统结束游戏背景视频播放。3a2.游戏系统反馈第一关游戏界面。n 字段列表2. 游戏背景=游戏背景文件+游戏背景文件状态2 游戏=游戏背景3 类图图3.41 观看背景视频类图4 顺序图(或状态图、活动图)图3.42 观看背景视频顺序图3.4 概要设计3.4.1 系统架构图图3.43 系统架构图3.4.2 系统架构说明在MVC架构中,组件的职责列举如下:模型:模型提供老人应用程序的核心功能,并且说明了视图的相互依赖关系以及控制器组件。视图:每个视图都对应用户信息的特定表示风格和格式。视图从模型检索数据,并且当数据在其他视图中发生改变的时候,更新视图的表示。视图还创建与之关联的控制器。控制器:控制器以事件的形式接收用户数据,事件触发模型中操作的执行。这些会引起信息的改变,并且在所有视图中触发所有更新,从而确保所有视图都得到更新。3.4.3 数据存储设计使用SharedPreferences存储数据。SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中 重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常规的Long长 整形、Int整形、String字符串型的保存。表3.1 数据存储设计键值对表keykey类型valuevalue类型音乐状态(musicstate)Stringon/offString音效状态(soundstate)Stringon/offString关卡序号(levelnum)Stringon/offString 系统详细设计4 系统详细设计4.1 开发工具和平台环境开发工具:Eclipse(集成Android SDK);平台环境:Windows 7+Java JDK。4.2 选择关卡模块设计4.2.1 实现类设计1 类图图4.1 选择关卡实现类图2 属性说明表4.1 选择关卡属性说明表类属性说明Level(关卡)levelNum关卡序号levelState关卡状态levelNums关卡序号集Data(数据管理)sp数据存储edtor数据编辑levelLevel(关卡)对象SetController(控制器)dataData(数据存储)对象GameActivity(游戏界面)LevelActivity(关卡选择界面)setControllerSetController(数据管理)对象3 方法设计表4.2 选择关卡方法设计表Level(关卡)String getLevelNum()获得关卡序号void setLevelNum(String levelNum)输入关卡序号来修改该关卡序号String getLevelState()获得关卡状态void setLevelState(String levelState)输入关卡状态来修改该关卡状态String getLevelNums()获得关卡序号数组void setLevelNum(String levelNums)输入关卡序号数组来修改关卡序号数组Data(数据管理)boolean isLevelSOn(String levelNum)输入关卡序号判断关卡是否已解锁,若true,则当前关卡已被解锁,若false,则未被解锁String getLevelState(String levelNum)输入关卡序号获得当前关卡状态SetController(控制器)String getLevelState(String levelNum)输入关卡序号获得当前关卡状态LevelActivity(关卡选择界面)void btnToOneLevel_Click(View view)统称btnToNumLevel_Click,即跳转到对应关卡选择界面。首先判断当前关卡是否被解锁,若已被解锁,则执行跳转(Intent);若未被解锁,做不跳转。void btnToTwoLevel_Click(View view)void btnToThreeLevel_Click(View view)void btnToFourLevel_Click(View view)void btnToFiveLevel_Click(View view)4.2.2 顺序图图4.2 选择关卡顺序图4.3 开始游戏模块设计4.3.1 实现类设计1 类图图4.3 开始游戏实现类图2 属性说明表4.3 开始游戏属性说明表类属性说明GameBg(游戏背景)bmpGameBg游戏背景图片Lawn(草地)bmpLawn草地图片bmpLawnX草地X坐标bmpLawnY草地Y坐标Door(通道)bmpDoor通道图片doorX通道X坐标doorY通道Y坐标CountDown(倒计时)bmpCountDown倒计时图片countDownX倒计时X坐标countDownY倒计时Y坐标Obstacle(障碍物)bmpObstacle障碍物图片obstacleX障碍物X坐标obstacleY障碍物Y坐标NumLevelSurfaceView(游戏界面)gameBgGameBg对象lawnLawn对象playerPlayer对象obstacleObstacle对象scoreItemScoreItemcountDownCountDownbtnStartGameStartButton对象btnPauseGamePauseButton对象btnReStartGameReStartButton对象btnJumpPlayerJumpPlayer对象gameState游戏状态ScoreItem(得分道具)bmpScoreItem得分道具图片scoreItemX得分道具X坐标scoreItemY得分道具Y坐标StartButton(开始按钮)bmpBtnStartGame开始按钮图片btnStartX开始按钮X坐标btnStartY开始按钮Y坐标context上下文对象PauseButton(暂停按钮)bmpBtnPauseGame暂停按钮图片btnPauseX暂停按钮X坐标btnPauseY暂停按钮Y坐标context上下文对象ReStartButton(重新开始按钮)bmpBtnReStartGame重新开始按钮图片btnReStartX重新开始按钮X坐标btnReStartY重新开始按钮Y坐标context上下文对象JumpButton(跳转按钮)bmpBtnJumpGame跳转按钮图片btnJumpX跳转按钮X坐标btnJumpY跳转按钮Y坐标context上下文对象Player(蜜蜂主角)bmpPlayer主角图片playerX主角X坐标playerY主角Y坐标3 方法设计表4.4 开始游戏方法设计表GameBggameBg(Bitmap bmpGameBg)构造方法void drawGameBg(Canvas canvas, Paint paint)draw()画图Lawnlawn(bmpLawn bmpLawn, int lawnX, int lawnY)构造方法void drawLawn(Canvas canvas, Paint paint)draw()画图Doordoor(Bitmap bmpDoor, int doorX, int doorY)构造方法void drawDoor(Canvas canvas, Paint paint)draw()画图CountDowncountDown(Bitmap bmpCountDown, int countDownX, int countDownY)构造方法void drawCountDown(Canvas canvas, Paint paint)draw()画图Obstacleobstacle(Bitmap bmpObstacle, int obstacleX, int obstacleY)构造方法void drawObstacle(Canvas canvas, Paint paint)draw()画图NumGameActivityint onCreate(Bundle savedInstanceState)调用其父类Activity的onCreate方法来实现对界面的图画绘制工作,在其中设置布局文件或对象NumLevelSurfaceViewvoid initGame()自定义的游戏初始化函数void myDraw()自定义的游戏绘图void logic()自定义的游戏逻辑void run()线程相关,在里面调用游戏绘图和游戏逻辑boolean onTouchEvent(MotionEvent event)点击事件(触屏事件)void btnStartClick(int pointX, int pointY, MotionEvent event)点击开始按钮ScoreItemscoreItem(Bitmap bmpScoreItem, int scoreItemX, int scoreItemY)构造方法void drawScoreItem(Canvas canvas, Paint paint)draw()画图StartButtonstartButton(Context context, Bitmap bmpBtnStartGame, int btnStartX, int btnStartY)构造方法void drawStart(Canvas canvas, Paint paint)draw()画图void onTouchEvent(MotionEvent event)点击事件PauseButtonpauseButton(Context context, Bitmap bmpBtnPauseGame, int btnPauseX, int btnPauseY)构造方法void drawPause(Canvas canvas, Paint paint)draw()画图void onTouchEvent(MotionEvent event)点击事件ReStartButtonstartReButton(Context context, Bitmap bmpBtnReStartGame, int btnReStartX, int btnReStartY)构造方法void drawReStart(Canvas canvas, Paint pain

温馨提示

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

评论

0/150

提交评论