毕业论文-基于android的解谜游戏设计与实现_第1页
毕业论文-基于android的解谜游戏设计与实现_第2页
毕业论文-基于android的解谜游戏设计与实现_第3页
毕业论文-基于android的解谜游戏设计与实现_第4页
毕业论文-基于android的解谜游戏设计与实现_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

PINGDINGSHANUNIVERSITY毕业论文设计题目基于ANDROID的解谜游戏设计与实现院系软件学院专业年级软件工程2009级姓名学号指导教师2012年12月12日基于ANDROID的解谜游戏开发摘要在科技文化高速发展的今天,人们对游戏的需求也日益高涨。从最初运行于掌上游戏机的“贪吃蛇”和“俄罗斯方块”到如今风靡全世界的网游无不体现了游戏的魅力。而随着智能手机终端的出现,更是为电子游戏提供了高速发展的平台。特别是IPHONE智能手机和ANDROID智能手机的面世,为掌上休闲游戏提供了更完善的开发环境。本文基于ANDROID系统环境,研究并开发了一款解谜类游戏,通过追踪游戏设定的线索解开谜底。通过策划、美工需求和功能需求确定了游戏的开发过程和运行流程。然后通过对关卡的设计来实现游戏的玩法,运用图形图像组件来实现游戏界面。运用SERVICE和INTENT实现游戏的控制,SHAREPREFERENCE和SQLITE实现游戏的数据中心。最后,将游戏界面、游戏控制和数据中心整合,并通过运行和测试。该游戏是一款具有良好娱乐界面和极强趣味性的解谜游戏。论文阐述了ANDROID解谜游戏的开发过程。首先对手机游戏的背景意义和研究现状、ANDROID平台的特征和应用构成进行介绍,其次对游戏的策划与需求进行分析,重点介绍游戏的设计与实现,然后进行综合测试。最后对游戏进行总结,提出游戏中的缺陷、不足和对未来的展望。关键词ANDROID,SQLITE,解谜游戏THEDEVELOPMENTOFTHEDECRYPTIONGAMEBASEDONANDROIDABSTRACTWITHTHERAPIDDEVELOPMENTOFSCIENCEANDTECHNOLOGYNOWADAYS,THEDEMANDSOFENTERTAINMENTGAMESAREGROWINGFASTFROMTHEFIRSTGAMESTHATWERETHEHANDHELDS“SNAKE”AND“TETRIS”TOTODAYEXTREMELYPOPULARONLINEGAMESAROUNDTHEWORLDALLREFLECTSTHECHARMOFTHEGAMESWITHTHEEMERGENCEOFINTELLIGENTMOBILETERMINALS,AHIGHSPEEDDIGITALGAMEDEVELOPMENTPLATFORMISBETTERPROVIDEDESPECIALLYWHENTHEIPHONEANDANDROIDPHONESAREAVAILABLE,ABETTERDEVELOPMENTENVIRONMENTFORTHEAPPLICATIONSOFHANDHELDCASUALGAMESISMORECONVENIENTBASEDONTHEANDROIDSYSTEMENVIRONMENT,THEDESIGNSTUDIESANDDEVELOPSARIDDLEKINDOFGAMEWHICHREVEALSTHEANSWERSBYTRACKINGCLUESTHEGAMESETSTHROUGHTHEPLANNING,CREATIVENEEDSANDFUNCTIONALREQUIREMENTSITDEFINESTHEGAMEDEVELOPMENTPROCESSANDRUNNINGPROCESSANDBYSETTINGTOLLGATESTHEDESIGNACHIEVESHOWTOPLAYTHEGAMEANDUSESGRAPHICSMODULETOREALIZETHEGAMEINTERFACEUSINGTHESERVICEANDINTENTTHEDESIGNREALIZESTHECONTROLFORTHEGAME,ANDWITHSHAREPREFERENCEANDSQLITEITREALIZESTHEDATACENTEROFTHEGAMEFINALLY,THEGAMEINTERFACE,THEGAMECONTROLANDTHEDATACENTERINTEGRATETOGETHER,ANDITPASSESTHERUNNINGANDTESTINGTHEGAMEHASAGOODENTERTAINMENTINTERFACEANDISEXTREMELYSTRONGINTERESTINGDECRYPTIONGAMETHISPAPERSTATESDEVELOPMENTPROCESSOFTHEANDROIDRIDDLEGAMEATFIRST,ITINTRODUCESBACKGROUNDSIGNIFICANCEOFMOBILEPHONEGAMEANDRESEARCHSTATUS,CHARACTERISTICSANDAPPLICATIONCONSTITUTESOFTHEANDROIDPLATFORMSTRUCTURENEXT,THEPAPERANALYZESTHEPLANANDTHEREQUIREMENTSOFTHEGAME,ANDFOCUSESONDESIGNANDIMPLEMENTATIONOFTHEGAMETHENCOMPREHENSIVETESTINGHASMADEFORTHEDESIGNFINALLY,THEPAPERSUMMARIZESTHEGAMEANDPUTSFORWARDDEFECTSANDFUTUREOUTLOOKFORTHEGAMEKEYWORDSANDROID,SQLITE,DECRYPTIONGAME目录1绪论111课题的背景及意义112研究现状113论文主要工作314论文结构安排32ANDROID平台研究521ANDROID特征522ANDROID应用的构成5221活动6222意图接收器7223服务7224内容提供者823ANDROID与IPHONE比较824本章小结93策划与需求分析1031游戏策划1032美工需求1133功能需求1134本章小结144设计与实现1541类框架介绍1542界面设计16421主界面16422游戏界面17423剧情界面17424背包界面1843功能实现19431界面跳转与特效19432背景音乐控制20433保存设置20434物品数据操作2144关卡设计23441关卡规则23442关卡实现2445本章小结265综合性能测试2751测试环境2752功能测试2853兼容性测试2954本章小结306结束语31附录32致谢391绪论在游戏产业高速发展的今天,游戏的设计思想和理念也在不断变化。而随着智能手机终端的出现,更是为手机游戏提供了高速发展的平台。本章将对ANDROID游戏的发展现状和前景进行分析,并介绍本文的研究内容和结构安排。11课题的背景及意义自上世纪80年代第一部手机诞生以来,随着计算机技术的进步,手机也经历了从模拟器到GSM、25G再到今天的3G手机如此一个发展历程1。特别是进入21世纪后手机的硬件性能得到很大的提高,当前主流手机普遍配有主频500MHZ的微处理器和500MB容量的存储器。与之同步发展的还有支持手机运行的手机操作系统,从当初的单片机系统到后来的专用嵌入式系统,到后来开始为智能手机设计开发出可以更高效管理手机软硬件资源的操作系统,其中有不少属于开源项目的手机操作系统。目前全球的智能手机操作系统主要以GOOGLE公司开发的ANDROID系统、苹果公司开发的IPHONE系统、诺基亚公司开发的SYMBIAN系统、微软公司开发的WINDOWSMOBILE系统和LINUX系统为代表。手机的发展也带动了手机游戏产业的快速发展。在人们的生活中有许多的游戏,但是不同的游戏会带给玩家不同的感受和生活理念。游戏是人们日常生活的一个必不可少的娱乐项目,也带动了游戏相关产业市场的发展。游戏平台经过从游戏机到电视游戏,然后到PC游戏,再到手机游戏,中间经历了很多技术的更新和变革。但随着新技术的发展和人们生活水平质量的提高,手机开始逐渐普及,因为手机是非常小巧便捷的,而且方便的特性成为人们日常生活中必备通讯工具。而基于手机平台的游戏也就拥有的市场空间是巨大的,也因随着3G的开通和应用,手机游戏必然会迎来新的一轮游戏热潮。12研究现状最早的手机游戏出现于1997年,经过十几年的发展,随着手机终端和移动通信网络的不断进步,手机游戏也正在经历由简单到复杂的进化过程。从全球来看,手机娱乐服务被公认为是带动移动数据业务快速发展的重要力量。作为手机娱乐服务的重要内容之一,近年来,伴随着移动网络和移动终端性能的不断提高与完善,手机游戏业务呈现快速增长的势头,成为一座名副其实的“金矿”2。2009年,手机游戏业务增长继续加速,全年手机游戏市场规模达到18亿元,同比增长385。但是,整个手机游戏18亿市场跟整个网络游戏270亿市场相比还不到其1/10,手机游戏何时爆发成为人们关注的焦点。2010年,中国手机游戏用户规模突破13亿,同比增长5211,同期中国手机游戏市场规模达33亿。截至2010年底,手机网游产品累计已超过300款,其中2010年新上线达到60余款。2011年中国手机游戏用户规模稳步增长,截止2011年第4季度达162亿人。随着智能终端的普及率和游戏获取门槛降低,手机游戏在产品类型及整体用户体验上都有较大提升,未来中国手机游戏用户规模还有较大增长空间。截止2012年第二季度,中国手机游戏市场规模达到122亿元,环比上涨208,中国手机游戏用户规模达到213亿,环比增长115,中国手机网络游戏市场规模达到442亿元,环比增长139。中国手机网络游戏用户规模达到了3520万,环比增长121。2012年第二季度,中国手机游戏用户中男性占674,女性占326,女性所占比重较上一季度有所上升。随着3G应用的快速推进以及智能机的普及,手机正逐渐成为“个人信息处理中心”,覆盖到生活的方方面面。随着手机带宽的不断提速,互联网从PC过渡到手机的趋势正在加速蔓延,这也为手机游戏业的兴起造就了新的商业机遇。手机游戏正在呈现一个巨大的市场,成为移动互联网领域的热门增长点。目前ANDROID手机游戏大致分为网络模拟、体育竞速、经营策略、动作竞技、休闲益智、射击冒险和角色扮演3。每种类型都有不同的特色和玩法。代表作有(1)网络模拟斗地主、三国杀等。(2)体育竞速极品飞车、虚拟乒乓、X跑酷等。(3)经营策略植物大战僵尸、愤怒的小鸟等。(4)动作竞技神庙逃亡、跳跃忍者等。(5)休闲益智捕鱼达人、水果忍者、鳄鱼爱洗澡等。(6)设计冒险雷电、坦克大战等。(7)角色扮演艾诺迪亚、三剑之舞、仙剑奇侠传等。有些游戏界线并不是非常明显,可能同时属于多种类型。例如愤怒的小鸟,它既可以属于经营策略游戏又可以属于休闲益智游戏。一款游戏中包含多种元素体现了游戏的多元化。解谜游戏既属于经营策略又属于休闲益智,是一类以追踪游戏中设定的线索从而解开游戏中最后的谜底为题材的游戏,情节一般较为华丽,画面精美,难度有大有小,其中MINIGAME元素繁多,种类不一。目前国外比较成功的解谜游戏有扫雷、时空幻境、机械迷城、神秘视线系列、梦之旅系列等。大致分为冒险解谜游戏、动作解谜游戏、寻找隐藏物品主题的解谜游戏。但是国内市面上的解谜游戏大多是对国外游戏的汉化或者模仿,并且大部分为FLASH小游戏,缺乏与国外大型解谜游戏抗衡的实力。国内解谜游戏的开发缺口很大,拥有巨大的市场潜力。13论文主要工作论文研究了ANDROIDSDK开发环境以及此环境下的用户界面组件、SQLITE数据库、SHAREPREFERENCES、INTENTRECEIVE、SERVICE等手机游戏开发相关技术。在本游戏中,首先运用ANDROID的用户界面组件构建游戏的界面,其次运用ANDROID内嵌的SQLITE数据库实现游戏数据的存取,为游戏的各功能模块提供数据源,最后运用INTENTRECEIVE和SERVICE构成游戏的控制中心。由于游戏的实现涉及到对数据库操作,本文重点研究了两种游戏数据的存取方式。第一种方式为ANDROID内置的SQLITE数据库,用于存取大容量的永久性游戏数据,为游戏提供安全稳定的数据源。第二种方式为SHAREPREFERENCES,是一个轻量级数据存储,用于暂存游戏的设置信息,两者构成游戏的数据中心。此游戏的最大特色是运用ANDROID编写基本被FLASH垄断的解谜游戏,将小说小王子与解谜元素融入休闲娱乐中。目前市场上的解谜小游戏大部分为FLASH游戏,下载到的ANDROID解谜游戏也仅是移植到ANDROID手机上,运行时仍需要ADOBEFLASH的支持。为了在游戏中保持一定的主题,本论文还浅层次的研究了小王子4和几米漫画等作品,并在游戏中借鉴了这些作品,达到了游戏与文学作品相结合的效果。14论文结构安排论文共分五章,内容及章节安排如下第一章,介绍ANDROID手机游戏的研究背景、研究现状、本文研究的主要内容和论文的组织结构。第二章,介绍ANDROID平台的特征和应用构成,并与IPHONE平台比较。体现ANDROID平台的优缺点。第三章,介绍游戏的策划和需求分析过程。第四章,介绍游戏的具体实现过程。用SQLITE数据库存取大容量数据源及SHAREPREFERENCES存取临时数据,依照设定的游戏情节设计游戏控制引擎,设计剧情,为玩家提供多点触控来操纵游戏。第五章,介绍游戏的测试过程。最后,总结了本文的工作,提出未来的工作计划。2ANDROID平台研究ANDROID是一个包含操作系统、中介架构层及应用程序所产生出来的软件堆栈架构。本章通过ANDROID的特征和应用构成介绍ANDROID的开发平台,并通过与IPHONE比较两者的优缺点。21ANDROID特征ANDROID系统是工作于智能手机之上的操作系统5,处处体现了与手机相关的特性。由于手机硬件配置的关系ANDROID系统与PC机上的操作系统有着很大的差异。只有充分了解ANDROID系统特性才能开发出适合手机运用的软件。以下为ANDROIDSDK22的主要特性(1)可重用和可替换组件的程序应用框架(2)针对移动设备优化过的DALVIK虚拟机(3)集成了基于开源WEBKIT引擎的网页浏览器(4)经过优化过的自定义2D图形库和基于OPENGLES10库可选硬件加速(5)SQLITE结构化的数据存储数据库(6)支持常规的音频视频多媒体格式,如MPEG4、H264、MP3、AAC、AMR、JPG、PNG、GIFGSM电话硬件决定(7)蓝牙、GPRSEDGE、3G和WIFI无线网络(8)相机、GPS全球定位、导航和感应加速器(9)丰富的开发环境包含设备模拟器、工具、调试器、内存和性能分析工具,以及ECLIPSE集成开发环境插件22ANDROID应用的构成对于一个ANDROID应用程序来说,是由ACTIVITY、INTENTRECEIVER、SERVICE、CONTENTPROVIDER四部分组成6。在应用程序中使用时,需要在配置文件ANDROIDMANIFESTXML中进行配置。这个配置文件是每个ANDROID应用程序所必需的,用于定义应用程序的组件、组件的功能以及必要条件等。ANDROID应用的构成和工作流程如图21所示。INTENTRECEIVERACTIVITY外部事件ACTIVITYSERVICEBINDER存储设备CONTENTPROVIDERINTENT通过CONTENTPROVIDER进行数据存储通过INTENTRECEIVER对外部事件进行响应通过INTENT实现活动之间的转换通过BINDER对SERVICE进行绑定图21ANDROID的构成和工作流程通常由以下四个组件来构建一个完整的ANDROID应用程序7。(1)活动(2)意图接收器(3)服务(4)内容提供者然而,并不是所有的ANDROID应用程序都必须具备上面的四个组件,可以由上面的一个或几个来组建。当决定使用以上哪些组件来构建ANDROID应用程序时,需要将它们注册在ANDROIDMANIFESTXML文件中,这是一个XML配置文件,在这个文件中可以声明应用程序组件以及它们的特性和要求。这个配置文件是每个ANDROID应用程序所必需的。221活动活动是以上四个组件中最常用的一个。每个活动都是ACTIVITY的子类,并实现了一些独有的功能,如管理UI显示和UI的反馈事件。一个活动就相当于应用程序的一个用户界面,由事件响应以及视图等组成。大多数的应用程序通常包括多个界面。例如一个文本聊天应用程序,至少应该包含一个联系人列表界面、一个聊天界面、一个设置界面、一个聊天记录查询界面等等。每个界面其实都可看作是一个活动。显示一个新界面就相当于生成一个对应的活动对象。在一些情况下,活动能够返回给它的上级界面一个返回值,例如一个提供给用户选择照片的活动可以返回给它的调用者用户选择了哪个照片文件。当一个新的活动出现时,前一个活动被中断并被放入到一个历史堆栈中。用户可以使用返回键使前一个活动重现。当一个活动不再需要时,可以将它们从历史堆栈中移除。默认情况下,ANDROID会为每个应用程序保留从主界面开始的历史堆栈。ANDROID通过一个被称作意图的特殊类,来实现界面与界面之间的跳转。一个意图描述了一个应用程序想要做什么。在意图的描述结构中,含有两个重要的数据结构动作和动作对应的数据。典型的动作类型包括MAIN、VIEW、PICK、EDIT等等,而动作对应的数据则以URI的形式表示。例如显示一个联系人信息的界面,可以创建一个意图,并将它的动作设置成VIEW,数据设置成表示这个人信息的URI。除此之外,还有一个被称作意图过滤器INTENTFIHER的相关类。当发生一个有效的目的请求时,意图过滤器用来描述一个活动能够处理什么意图。如上例中所描述,想要正常显示一个联系人信息的界面,必须声明一个意图过滤器,它说明当有联系人数据要在界面上显示时,知道如何处理它们。通常意图过滤器要被注册在ANDROIDMANIFESTXML文件中。从一个界面跳转到另一个界面是由解析各种意图实现的。例如一个活动使用STARTACTIVITYMYINTENT来调用其他活动时,系统会查找所有已经安装的应用程序的意图过滤器,并从中挑选出能够匹配MYINTENT意图的活动。随后,这个新的活动接收到意图MYINTENT的通知并开始运行。当STARTACTIVITY方法被调用,解析意图的处理过程随之发生,这个机制有以下两个突出的优点(1)活动可以通过一个以意图形式产生的请求来重用其他组件的功能。(2)活动可以在任何时候被一个具有等价意图过滤器的新活动所替代。222意图接收器当想要编写代码来对外部事件做一些处理时,可以使用意图接收器。意图接收器并不显示UI界面,它是通过NOTIFICATIONMANAGER来通知用户他们感兴趣的事件发生了。意图接收器同样可以被注册在ANDROIDMANIFESTXML文件中,同时也可以在代码中使用CONTEXTREGISTERRECEIVER来注册自己的意图接收器。当一个意图接收器被触发时,系统会根据需要来启动应用程序。223服务服务是具有长生命周期并且没有用户界面的代码。SERVICE一般用于需要长时间在后天运行的应用。例如,在播放MP3音乐时,使用SERVICE播放MP3音乐,可以在关闭播放器界面的情况下长时间播放MP3音乐,并通过对外公开SERVICE的通信接口,控制MP3音乐播放的启动、暂停和停止。224内容提供者在ANDROID中,每个应用程序都是有自己的USERID及在自己的进程中执行。这样做的好处是,可以保护系统及应用程序,避免被其他不正常的应用程序所影响。可以把每个进程想像成是一个黑盒子,彼此不会互相影响,连内存的资料都无法共享。如果应用程序之间想要共享数据,就需要使用内容提供者。一个内容提供者就是一个类,它实现了一个标准的方法集合。其他的应用程序可以使用这些方法来保存和检索此内容提供者处理过的数据。23ANDROID与IPHONE比较ANDROID与IPHONE是目前占据市场比例最大的两种智能手机操作系统,两者各有千秋,在不同方面展示出自己的竞争力。由于这四、五年特别是近两年来的上佳表现被业内评为未来占主导地位的智能手机操作系统,将占据80的智能手机市场。以下是从五个方面来对比ANDROID与IPHONE(1)开放性方面ANDROID是个完全开源的项目,开发者可以根据自己需要任意改造其系统,让ANDROID表现的更为灵活。IPHONE则完全是为自己量身定做系统。由于ANDROID表现的较为开放,众多开发者的实际经验可以帮助ANDROID更快的进步,让升级版本更快更好的完善。(2)第三方应用推广方面ANDROID和IPHONE都有自己的应用超市,目前IPHONE的付费方式购买比ANDROID较为完善,所以当前从事IPHONE应用开发的开发人员盈利水平比ANDROID较高。但由于ANDROID开放力度较大,现在两者应用超市上的应用软件数量基本持平。(3)用户体验方面用户体验最深的自然是屏幕界面以及机器性能。IPHONE以开发MACOS多年的经验使得IPHONE界面美观方面的确优于ANDROID。但随着ANDROID系统的迅速改善特别是最近一年对图形处理方面的重视以及开发者开发经验的增长,两者开发的应用软件界面体验差距越来越小。(4)潜在用户群方面手机用户是推动智能手机操作系统成长的重要因素,影响用户选择手机最重要的因素则是手机的性价比。目前全世界预装ANDROID系统的手机的主要厂商越有20多个,从机器配置方面来看,ANDROID手机性价比远远高于IPHONE,让更多的用户更愿意选择使用ANDROID手机。这对ANDROID的成长非常有利。(5)应用开发方面ANDROID的开发语言主要是JAVA语言,IPHONE则是OBJECTIVEC。JAVA语言开发的引用移植性较好,开发人员较OBJECTIVEC更多。而OBJECTIVEC开发的软件则执行效率更高,为弥补这方面缺陷,ANDROID提供了JNI接口,对执行效率要求较高的部分可以使用C语言开发再通过JNI接口调用来提高执行效率。24本章小结本章简要阐述游戏的开发环境ANDROID的特点和构成,然后与IPHONE平台作比较,最后总结两者的优缺点。3策划与需求分析本章主要探究游戏的前期策划工作,从游戏策划、美工需求和功能需求三个方面描述游戏的策划与需求分析过程。31游戏策划本游戏是根据圣埃克苏佩里的小说小王子为原型结合现在比较流行的解谜元素设计的一款解谜游戏。以各种常见的游戏元素和卡通画形式构建游戏,并借鉴小说的剧情与深意使游戏更有内涵。游戏的策划主要包括游戏的情节、目标受众、运行的目标平台、采用的呈现技术、操作方式等几个方面。下面就针对本游戏对上述几个方面进行简单的介绍,如下所列。游戏情节,本游戏为轻量级的益智游戏,因此不存在很复杂的情节。这方面主要借鉴小王子与自己的构想。主角为独自生活在612星球的小王子,小王子的星球很小,小的只能容下他一个人。某天他的星球长出了一朵玫瑰花,孤单的小王子细心照料它,并与这朵花成为了朋友,但小王子为了了解外面的世界不得不离开他的星球和他唯一的朋友“玫瑰花”。小王子在一个很大的星球上迷失了方向,根据影子的指引离开了这个广阔但没有方向感的星球。然后小王子又来到了一个很小的星球,这个星球小的只有一个小房子,小王子困在了小房子,找到机关与钥匙小王子继续他的旅行。而后在另一个星球上小王子遇到了一只狐狸,狐狸让他理解了什么是驯服、什么是责任,小王子决定返回自己的星球和自己的玫瑰花身旁。忘了回家路的小王子乘着风的方向回到了612星球,拥抱自己的玫瑰花。本游戏主角原型为小王子的主角,一个天真烂漫的孩子,故事的主题为爱与责任。关卡设计,本游戏设为三个关卡,每个关卡有自己不同的过关要求,通过不同的玩法最终完成游戏。游戏第一关和第三关为迷宫类,玩家需要按照正确路径走出迷宫,第二关为密室逃脱类,玩家通过对逃脱物品的寻找逃脱密室。目标受众,这个游戏受众主要为年轻人。考虑到受众面广的原因,将画面设定为卡通画形式,使画面更加年轻化。运行的目标平台,本游戏的目标平台为ANDROID22以上的ANDROID手机。操作方式,本游戏采用ANDROID手机触摸屏幕控制游戏,使操作更加简单方便。游戏使用ECLIPSE作为主要的开发工具,使用PHOTOSHOP作为图片处理工具。32美工需求一款游戏是否受欢迎,取决于它的娱乐性和可观赏性,高速发展的游戏产业使玩家的要求越来越严格,所以游戏的界面美化和图形设计是很重要的8。本游戏的一些美工需求如下1场景游戏的场景根据游戏不同的关卡分为很多种,每个场景都需要不同的图片和图形元素。这些场景有的只需要一个背景图片有的则需要多张叠加构成。2按钮按钮的使用方便触屏的操作,本游戏按钮需求包括方向按钮、功能按钮和元素按钮。3图片游戏中需要物品的显示,需要通过触摸进行一些操作,用图片来显示既美观又方便操作。计划采用网上素材和设计这两种方式,用PHOTOSHOP等图片处理软件处理图片达到需要的效果。33功能需求项目实现解谜游戏的所有基本功能,同时,为了满足玩家的个人需求,在游戏中加入了背景音乐和音效等效果,从而使游戏从感官上更加吸引玩家。在游戏中为了方便玩家查看已获取的物品需加入背包按钮,玩家可以通过点击可获得物品得到物品,通过方向按钮切换不同的场景。1游戏主界面功能需求良好的用户界面,能够在视觉上吸引玩家。为了使界面简洁美观,需要在主界面中添加背景图片来渲染游戏的气氛,同时为了便于玩家的操作,需要设置四个按钮供玩家选择,分别是“开始游戏”、“设置”、“帮助”、“退出”。这样的设置让用户一目了然。具体功能如下1开始游戏,点击跳转到游戏界面,开始游戏;2游戏设置,玩家可以选择是否打开背景音乐和设置音乐音量的大小;3游戏说明,简单介绍此游戏的基本功能和玩法;4退出游戏,点击退出游戏。2场景切换处理事件的需求为了方便玩家操作,需要设置四个方向供玩家操作,分别为向上、向下、向左、向右的按钮。玩家切换场景,可通过点击方向按钮(上、下、左、右)向对应的场景切换。3背包显示需求玩家可以点击界面的背包按钮查看已经获得的物品,显示物品的名称和介绍信息。4获取物品需求当玩家点击可获取的物品时,物品消失并弹出提示消息“玩家获得该物品”,再次切换到此场景不会再显示物品。玩家可以点击“背包”按钮查看新获取的物品。5事件响应需求事件响应分为按钮响应、图片响应、特定区域响应,分别对应玩家点击按钮、点击物品和点击特定区域的动作,根据不同动作做出不同的响应。游戏的功能用例图如图31所示。游戏玩家帮助设置退出开始游戏切换场景音量大小打开音乐关闭音乐查看物品获取物品查看帮助图31游戏功能用例图以下为游戏功能需求的部分测试用例。其中游戏设置用例描述如表31所示。表31游戏设置用例描述用例编号301用例名称游戏设置用例用例概述游戏玩家完成游戏背景音乐的设置,包括音量大小和音乐的开关参与者玩家前置条件玩家已经成功启动该游戏后置条件能够通过触摸音量条控制游戏音量,通过开关按钮控制背景音乐的开关成功保证玩家通过触摸按钮正常操作,能够控制音量大小和背景音乐的开关基本事件流步骤活动1玩家正常启动游戏,进入游戏设置界面2点击开关按钮,设置为打开状态并返回主界面,能听到背景音乐3点击开关按钮,设置为关闭状态并返回主界面,不能听到背景音乐,完成游戏背景音乐开关的任务4设置背景音乐为打开状态,触摸音量条控制游戏音量变大,返回主界面音乐音量变大5设置背景音乐为打开状态,触摸音量条控制游戏音量变小,返回主界面音乐音量变小,完成游戏背景音乐音量大小的任务规则与约束玩家按操作说明正确操作切换场景用例描述如表32所示。表32切换场景用例描述用例编号302用例名称切换场景用例用例概述游戏玩家完成游戏界面的上下左右切换界面以及游戏其他相关功能参与者玩家前置条件玩家已经成功启动该游戏后置条件能够通过触摸箭头控制游戏场景切换以及相关操作成功保证玩家通过触摸按钮正常操作,能够切换场景基本事件流步骤活动1玩家正常启动游戏,进入游戏开始界面2触摸箭头控制游戏场景切换,完成游戏场景切换的任务3能够通过不同按钮切换到不同场景规则与约束玩家按操作说明正确操作获取物品用例描述如表33所示。表33获取物品用例描述用例编号303用例名称获取物品用例用例概述游戏玩家完成游戏中获取物品以及相关功能续表33参与者玩家前置条件玩家已经成功启动该游戏后置条件能够通过触摸可获取物品获得该物品以及相关操作成功保证玩家通过触摸按钮正常操作,能够获取物品并再次切换到该界面不会再显示物品基本事件流步骤活动1玩家正常启动游戏,进入游戏开始界面2触摸“可获取物品”获得物品,物品消失并弹出提示信息。3切换到其他场景再切换回该场景。物品不会再显示,完成游戏切换场景的任务4能够通过触摸物品达到获取物品的效果规则与约束玩家按操作说明正确操作34本章小结本章详细探究了游戏的需求分析,完成了游戏的内容设计、美工需求和功能需求三个方面的内容。4设计与实现本章详细描述该游戏的设计与实现过程。从总体类框架设计、界面设计、功能设计与实现及卡关设计的解决方案几个方面阐述游戏开发过程。41类框架介绍该游戏开发的类比较多,为了更好的理解各个类在游戏中所扮演的角色,将框架分类并对各个类的功能进行简要介绍。游戏的类框架如图41所示。公共类DBADAPTERMUSICSERVICE游戏主界面类MAINACTIVITYSETTINGGAMEHELP运行界面相关类PREFACEGAMESTARTSCENEWINDGAMEBAG图41游戏的类框架1公共类DBADAPTER游戏的数据库设计,包含代码创建数据库、数据库帮助类以及对数据进行增加、删除、查询、判断等操作的一些方法。MUSICSERVICE游戏的音乐服务类,包含控制服务的方法,实现背景音乐的开关和音量大小的方法。2游戏主界面相关类MAINACTIVITY游戏主界面,包含初始化服务、初始化数据库等方法。GAMEHELP游戏帮助,显示游戏介绍和帮助信息。SETTING游戏设置,包含创建设置文件、读取和保存设置的方法。3游戏运行界面相关类PREFECE游戏剧情界面,在关卡之间显示剧情。GAMESTART游戏开始,游戏第一关界面,包含控制跳转和判断过关条件的方法。SCENE游戏第二个界面,包含物品显示、获得物品等方法。WIND游戏第三关界面,包含控制跳转和判断过关条件的方法。GAMEBAG游戏包裹,显示已经获得的物品及描述。42界面设计本游戏的一项难点在界面设计,好的游戏界面既能使画面美观也能提高对玩家的吸引力。本小节介绍游戏界面的具体实现过程,包括主界面、游戏界面和剧情界面的设计。421主界面主界面由一张背景图片和4个图片按钮组成,4个图片按钮为统一风格统一大小的按钮,分别用来实现开始游戏、设置、帮助和退出功能。游戏启动界面如图42所示。图42游戏主界面在主界面的配置文件ACTIVITY_MAINXML中设置背景图片的路径ANDROIDBACKGROUND“DRAWABLE/MAINMUEN“,其中MAINMUEN为图片的名称。设置4个图片按钮的图片路径、位置、以及按钮背景透明。422游戏界面本游戏的界面根据不同关卡也略有不同,第一关和第三关采用随机生成的背景图片和三个IMAGEBUTTON方向按钮组成,界面简洁操作方便。第二关游戏界面由背景图片、两个IMAGEBUTTON方向按钮、隐藏的IMAGEVIEW以及一个背包按钮组成。方向按钮控制往不同的界面跳转,背包按钮可以点击查看获得的物品。界面初始隐藏的IMAGEVIEW不会显示,达到一定的条件就会自动在界面显示。游戏第二关界面如图43所示。图43游戏第二关界面按钮设置为大小为8525像素并按照相对布局排布,两个方向按钮放在左中和右中,在对应的XML文件中以ANDROIDLAYOUT_ALIGNPARENTLEFT“TRUE“和ANDROIDLAYOUT_CENTERVERTICAL“TRUE“来设置。423剧情界面游戏中包含几个剧情界面,它们由背景图片、TEXTVIEW和按钮组成。当玩家点击屏幕时,监听器记录点击的次数而做出不同的动作,如每次点击重设TEXTVIEW的内容,点击一定次数切换背景图片。例如第三关的剧情界面如图44所示。当玩家点击屏幕时,监听器中设置变量TEMP计算点击次数,每次在界面中间的文本框中设置不同的内容,文本框设置为布局居中、内容居中。游戏结尾剧情介绍完毕后让隐藏的退出按钮显示出来,玩家点击退出结束游戏。图44剧情界面424背包界面本游戏在进行过程中可以通过背包按钮跳转到背包界面来查看物品及相关信息。因为功能简单不需要太复杂的设计,本游戏实用TEXTVIEW来显示从数据库中查询到的物品信息。背包界面如图45所示。图45背包界面玩家点击游戏界面的背包按钮跳转到背包界面,界面的TEXTVIEW将把数据库查询到的物品和信息显示在界面中,点击返回按钮返回到上一界面。43功能实现本小节主要介绍游戏功能的具体实现过程,包括界面跳转、背景音乐控制、保存设置和物品数据操作。阐述了游戏中对数据和控制的实现方式与步骤。431界面跳转与特效本游戏由多个ACTIVITY组成,进行界面跳转的时候就需要用到ACTIVITY和INTENT来进行跳转。例如游戏主界面跳转到开始游戏界面IMAGE3SETONCLICKLISTENERNEWONCLICKLISTENERPUBLICVOIDONCLICKVIEWVINTENTINTENTNEWINTENTMAINACTIVITYTHIS,PREFACECLASSSTARTACTIVITYINTENTOVERRIDEPENDINGTRANSITIONRANIMENTERALPHA,RANIMOUTALPHA创建一个INTENT,指定由当前ACTIVITY跳转到PREFACE这个ACTIVITY,把创建好的INTENT作为参数传递给STARTACTIVITY方法。由于使用多个ACTIVITY,因此需要在ANDROIDMAINFESTXML文件中注册这些ACTIVITY。使用标签,嵌套在标签内部。其中OVERRIDEPENDINGTRANSITION控制ACTIVITY跳转的效果,ENTERALPHA和OUTALPHA是保存在工程目录RES/ANIM下的XML文件,通过修改透明度来实现ACTIVITY进入屏幕的效果和退出屏幕的效果。进入屏幕的效果配置如下/延时2000毫秒FROMALPHA属性为动画起始时透明度,TOALPHA属性为动画结束时透明度,DURATION代表特效的持续时间。退出屏幕的配置与进入屏幕的配置类似,将透明度设置为从1到0即可。432背景音乐控制游戏中背景音乐没有界面,不直接与用户交互,能够长期在后台运行。适合用SERVICE来控制在后台服务9。在游戏设置界面创建一个SEEKBAR和BUTTON来控制音量的大小和开关。在布局中声明一个SEEKBAR,在设置的ACTIVITY中添加SEEKBAR的监听器,复写以下三个方法ONPROGRESSCHANGED当进度条的进度发生变化时调用该方法。ONSTARTTRACKINGTOUCH当玩家滑动滑块时,调用该方法。玩家滑动时才去触发,由系统滑动是不会触发的。ONSTOPTRACKINGTOUCH当玩家停止对滑块滑动时,调用该方法。创建一个类MUSICSERVICE继承SERVICE,添加一个MEDIAPLAYER名称为PLAYER。SERVICE有三个事件回调函数,分别是ONCREATE、ONSTART和ONDESTORY。在ONSTART中添加PLAYER的播放路径,调用PLAYER的PREPARE和START方法完成SERVICE播放音乐的设置。在ONDESTORY中添加PLAYER的STOP方法完成停止播放背景音乐的功能。最后在进入游戏的主界面创建和启动SERVICE,代码如下INTENTSERVICEINTENTNEWINTENTTHIS,MUSICSERVICECLASSTHISBINDSERVICESERVICEINTENT,MCONNECTION,CONTEXTBIND_AUTO_CREATESTARTSERVICESERVICEINTENT433保存设置在游戏中需要长期存储一些游戏生成的数据,例如玩家对游戏背景音乐的开关和音量大小的设置,以便之后不需要重复设置。由于这些信息简单,如果用SQLITE数据库保存的话,影响操作效率,SHAREPREFERENCE这种轻量级的键值存储方式非常适合这种要求。用SHAREPREFERENCE对象存储和获取数据都非常方便快捷。SHAREPREFERENCE有三种访问模式私有(MODE_PRIVATE)、全局读(MODE_WORLD_READABLE)、全局写(MODE_WORLD_WRITEABLE),使用SHAREPREFERENCE前先定义SHAREPREFERENCE的访问模式。存储数据首先要在CONTEXT中创建SHAREPREFERENCE并获得EDIT对象,之后用PUTSTRING“KEY“,KEYVALUE方法将数据预保存,在COMMIT方法之后才实现数据的存储。需要获取数据只需要使用GETSTRING“KEY“方法即可,下段代码为保存和读取玩家设置的代码。PRIVATEVOIDSAVESHAREDPREFERENCES/保存游戏设置SHAREDPREFERENCESSHAREDPREFERENCESGETSHAREDPREFERENCESPREFERENCE_NAME,MODESHAREDPREFERENCESEDITOREDITORSHAREDPREFERENCESEDITEDITORPUTINT“VOICE“,VOICEEDITORPUTINT“MYSWITCH“,MYSWITCHEDITORCOMMITPRIVATEVOIDLOADSHAREDPREFERENCES/读取游戏设置SHAREDPREFERENCESSHAREDPREFERENCESGETSHAREDPREFERENCESPREFERENCE_NAME,MODEVOICESHAREDPREFERENCESGETINT“VOICE“,50MYSWITCHSHAREDPREFERENCESGETINT“MYSWITCH“,1游戏的开始运行时,首先读取SHAREPREFERENCE设置,再设置音乐的开关和音量大小。玩家进入设置界面更改设置并返回主界面后,游戏重新读取新的设置并执行。434物品数据操作本游戏对物品的操作主要有查看已获得物品、获取物品、判断是否已经获得某物品。因为对数据的操作较频繁,所以适合用SQLITE保存数据,然后对数据库数据进行操作。SQLITE数据库的优势在于其可以嵌入到使用它的应用程序中。这样不仅提高运行效率,而且屏蔽了数据库使用和管理的复杂性,应用程序仅做最基本的数据操作,其他操作则交给进程内部的数据库完成10。首先创建一个类DBADAPTER,把所有的数据操作都封装在这个类里。在DBADAPTER类中首先声明了数据库的基本信息,包括数据库的文件名GAMEDB、表名称GOODS和版本号,以及数据库表的属性名称。本游戏的表中有ROWID,NAME和INTRO三个属性,ROWID为表的主键。物品信息的实体图如图46所示。然后声明SQLITEDATEBASE的实例和帮助类SQLITEOPENHELPER,这个帮助类可以辅助建立、更新和打开数据库。图46物品信息实体图为了使DBADAPTER类支持数据的一些操作,在DBADAPTER类中添加增加、查询、判断等方法。具体的有DELETEALLDATA用来删除全部数据DROPTABLE舍弃表OPEN打开数据库CLOSE关闭数据库INSERTTITLESTRINGNAME,STRINGINTRO向数据库中插入一个数据DELETETLTLESTRINGROWID删除一个指定数据GETALLDATA检索所有数据GETTITLESTRINGROWID检索一个指定数据CXTLTLESTRINGNAME判断是否有某项数据数据中心是在SQLITEOPENHELPER的基础上构建起来的,在构造方法中用SUPERCONTEXT,DATABASE_NAME,NULL,DATABASE_VERSION便可初始化SQLITE数据库,然后编写可供其他模块调用的数据提取方法,以下为一段查看已经获得物品的代码。/取出所有数据DBNEWDBADAPTERTHISDBOPENCURSORCDBGETALLTITLES/检索所有数据IFCMOVETOFIRSTDODISPLAYTITLEC物品ID备注名称WHILECMOVETONEXTDBCLOSE/显示背包的数据PUBLICVOIDDISPLAYTITLECURSORCTEXTVIEWSETTEXTTEXTVIEWGETTEXT“N“CGETSTRING1“CGETSTRING2“N“点击背包按钮,实例化数据库,调用OPEN打开数据库,用CURSORCDBGETALLDATA获取表中所有的数据信息,实用DISPLAYTITLE方法在背包界面中显示出来。当玩家点击一件物品时,在物品的监听事件的ONCLICKVIEWV方法中首先调用OPEN打开数据库,然后用INSERTTITLE插入这个物品的NAME和INTRO数据。最后调用CLOSE关闭数据库,设置物品的属性为VIEWGONE使其不可见。有些场景需要判断是否已经获得物品,防止玩家获取后再次返回界面重新出现的问题。所以场景载入的时候需要首先判定是否已经有某些物品,然后再判断是否显示。用CXTITLE方法进行判断,返回值为FALSE时显示物品,反之不显示物品。44关卡设计本游戏的最大特色在于关卡的设计,解谜游戏好的关卡设计能让玩家投入其中,所以解谜游戏的灵魂在于关卡的设计。本小结介绍游戏的关卡设计,包括游戏的关卡的规则和具体实现。441关卡规则本游戏的规则为自定义规则,游戏总共有三关构成,每一关都有不同的规则,玩家必须按照规则才能完成游戏。所以在此着重介绍游戏的玩法,每关的规则如下。第一关游戏第一关为主角迷失在一片草原中,玩家需要根据提示按照树的影子为指引走出迷宫,每次影子的方向为上、左、右三个方向随机生成。当连续5次按照正确的方向通过路口后会跳转到下一关,否则玩家永远无法到达下一关。三个方向的影子如图47所示。图47第一关树的影子第二关游戏第二关为主角来到一个密封的小房间,玩家可以切换场景查看房间的四面,参考门边提示获得三个不同形状的标记并得到钥匙才能打开门完成关卡。具体玩法(1)三角形标记,玩家打开书柜的拉近界面,界面中红黄蓝三本书是可以点击的,三角形标记隐藏在书后,玩家必须按照“红黄蓝黄”的顺序才能让标记显示出来,玩家通过场景中彩色的窗帘获得提示信息,窗帘的条纹按照“红黄蓝黄”的顺序,与书本的点击顺序一致。(2)圆形标记,圆形标记放在密码箱中,玩家需要输入正确的密码才能打开箱子。密码的提示在旁边的垃圾桶内的纸条上,点击垃圾桶查看垃圾桶内部并点击纸条获得密码提示。密码提示为112,表示密码为11的2进制1011,输入密码1011打开箱子,点击圆形标记获取物品。(3)五角星标记,玩家点击床的下边部位跳转到床下特写镜头,标记贴在床边,点击获取标记并弹出提示。(4)钥匙,玩家多次点击窗帘后,钥匙会从窗帘内掉到地下,点击获取钥匙并弹出提示。(5)获得以上4件物品,点击门后会自动跳转到下一关卡,若没有物品或物品不全时点击门,会弹出

温馨提示

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

评论

0/150

提交评论