版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-摘 要在科技文化高速发展的今天,人们对游戏的需求也日益高涨。从最初运行于掌上游戏机的“贪吃蛇”和“俄罗斯方块”到如今风靡全世界的网游无不体现了游戏的魅力。而随着智能手机终端的出现,更是为电子游戏提供了高速发展的平台。特别是iPhone智能手机和Android智能手机的面世,为掌上休闲游戏提供了更完善的开发环境。Android是一种以Linux为基础的开源代码操作系统,主要应用于手机,因为其良好的人机交互能力和能够安装使用众多功能各异的应用软件而深受人们喜爱,本文就介绍其基于Android 版本结合当前比较成熟的AR技术开发的一个3D“祖玛游戏”。根据游戏规则和实际需求,提出了新的构想和设计,
2、并在这样的基础上,构建实现了祖玛游戏。论文阐述了Android祖玛游戏的开发过程。首先对手机游戏的背景意义和研究现状、android平台的特征和应用构成进行介绍,其次对游戏的策划与需求进行分析,重点介绍游戏的设计与实现,然后进行综合测试。最后对游戏进行总结,提出游戏中的缺陷、不足和对未来的展望。关键词:Android 手机 3D 游戏 祖玛- Abstract With the rapid development of science and technology nowadays, the demands of entertainment games are growing fast. Fr
3、om the first games that were the handheld s “Snake” and “Tetris” to today extremely popular online games around the world all reflects the charm of the games. With the emergence of intelligent mobile terminals, a high-speed digital game development platform is better provided. Especially when the iP
4、hone and Android phones are available, a better development environment for the applications of handheld casual games is more convenient. Android is a sort of open source code operating system that base on the Linux, and mainly used by mobile phone. It is so popular because of the good human-machine
5、 interaction capability, and also there are all kinds of functional applications software can be installed that through by this operating system, this article will introduces a kind of Montezuma Game that bases on the Android and Compares with the current mature AR technology and 3D technology , thi
6、s article pointed out an new idea and design for Montezuma due to the peoples operating habits and particular demands, and on such a basis to construct and achieve this Montezuma.function to ensure the security and stability of the system effectively.This paper states development process of the andr
7、oid Montezuma game. At first, it introduces background significance of mobile phone game and research status, characteristics and application constitutes of the android platform structure. Next, the paper analyzes the plan and the requirements of the game, and focuses on design and implementation of
8、 the game. Then comprehensive testing has made for the design. Finally, the paper summarizes the game and puts forward defects and future outlook for the game.Keywords: Android Mobile AR 3D Game Montezuma-目 录第一章 绪论11.1. 课题的背景及意义11.2. 研究现状11.3. 论文主要工作21.4. 论文结构安排2第二章 需求分析42.1. 游戏策划42.2. 美工需求42.3. 功能需
9、求52.4.1. 游戏主界面功能需求52.4.2. 关卡选择界面功能需求52.4.3. 游戏界面功能需求52.4.4. 游戏用例分析62.4. 系统的开发测试环境92.5. 本章小结9第三章 概要设计103.1. 游戏设计目标103.2. 游戏结构103.3. 游戏中需要解决的关键问题123.4. 本章小结13第四章 界面设计144.1. 游戏界面整体结构144.2. 主界面144.3. 关卡选择界面154.4. 游戏界面153.5. 本章小结15第五章 详细设计与实现165.1. 类框架介绍165.1.1. 公共类165.1.2. 游戏主界面相关类175.1.3. 游戏运行界面相关类185.
10、2. 功能实现195.2.1. 界面跳转与特效195.2.2. 适应多种手机屏幕分辨率205.2.3. 背景声音控制205.2.4. 游戏关卡实现215.1.4. 玩家得分记录存储215.2.5. 珠子模型运动实现225.2.6. 模型碰撞检测235.2.7. 玩家得分实现245.3. 本章小结26第六章 总结与致谢276.1. 本程序的总结和展望276.2. 经验和感想27致 谢29参考文献30-第一章 绪论在游戏产业高速发展的今天,游戏的设计思想和理念也在不断变化。而随着智能手机终端的出现,更是为手机游戏提供了高速发展的平台。本章将对Android游戏的发展现状和前景进行分析,并介绍本文的
11、研究内容和结构安排。1.1. 课题的背景及意义自上世纪80年代第一部手机诞生以来,随着计算机技术的进步,手机也经历了从模拟器到GSM、2.5G再到今天的3G手机如此一个发展历程。特别是进入21世纪后手机的硬件性能得到很大的提高,当前主流手机普遍配有主频500MHZ的微处理器和500MB容量的存储器。与之同步发展的还有支持手机运行的手机操作系统,从当初的单片机系统到后来的专用嵌入式系统,到后来开始为智能手机设计开发出可以更高效管理手机软硬件资源的操作系统,其中有不少属于开源项目的手机操作系统。目前全球的智能手机操作系统主要以Google公司开发的Android系统、苹果公司开发的iPhone系统
12、、诺基亚公司开发的Symbian系统、微软公司开发的Windows Mobile系统和Linux系统为代表。 手机的发展也带动了手机游戏产业的快速发展。在人们的生活中有许多的游戏,但是不同的游戏会带给玩家不同的感受和生活理念。游戏是人们日常生活的一个必不可少的娱乐项目,也带动了游戏相关产业市场的发展。游戏平台经过从游戏机到电视游戏,然后到PC游戏,再到手机游戏,中间经历了很多技术的更新和变革。但随着新技术的发展和人们生活水平质量的提高,手机开始逐渐普及,因为手机是非常小巧便捷的,而且方便的特性成为人们日常生活中必备通讯工具。而基于手机平台的游戏也就拥有的市场空间是巨大的,也因随着移动互联的发展
13、和AR等技术的突破,手机游戏必然会迎来新的一轮游戏热潮。1.2. 论文主要工作 论文研究了Android开发环境以及此环境下的用户界面组件、五大Android布局方式、Share Preferences、声音播放组件等手机游戏开发相关技术。在本游戏中,首先运用Android的用户界面组件构建游戏的界面,结合第三方增强现实开发工具包metiao SDK,并运用Android内嵌的Share Preferences实现游戏配置数据的存取,为游戏的各功能模块提供数据源,最后由游戏逻辑控制引擎系统构成游戏的控制中心,。游戏需要对数据操作,对比了两种游戏数据的存取方式。第一种方式为Android内置的S
14、QLite数据库,用于存取大容量的永久性游戏数据,为游戏提供安全稳定的数据源。第二种方式为Share Preferences,是一个轻量级数据存储,用于存储游戏的设置信息等基本信息,由于游戏较为简洁,因此采用了第二种方式。游戏的实现同时涉及到AR(增强现实)技术的使用,本文还研究了第三方的AR开发包metaio SDK,技术实现主要包括3个方面:加载配置文件,加载模型,驱动模型。此游戏的最大特色是运用AR技术来再现经典祖玛游戏,将虚拟的珠子应用到真实世界场景中,从而实现对现实现实与虚拟的实时互动。AR类游戏最成功的知名度最高的当属日本开发的一个捉蝴蝶应用,本游戏中借鉴了这些作品开发技术和创作,
15、将珠子投放到周围的空间模拟蝴蝶,加上经典的祖玛游戏玩法,这是本祖玛游戏的创新点,将最新的技术的AR技术应用在最经典的祖玛游戏中,达到了游戏与技术相结合的效果。第二章 需求分析本章主要探究游戏的前期工作包括:游戏策划、美工需求和功能需求三个方面描述游戏的策划与需求分析过程。 2.1. 游戏策划祖玛游戏本身创意简单独特,游戏模式基于消除类游戏,并且使消除类游戏加入了更强的操作感,游戏的节奏明快,内容简单但引人入胜。借用增强现实技术和3D技术,打开游戏开启摄像头:五彩缤纷的珠子在你的周边旋转,当你点击球珠后,眼前会射出一个彩色的珠子,游戏更贴近真实。游戏的策划主要包括游戏的规则、目标受众、运行的目标
16、平台、采用的呈现技术、操作方式等几个方面。下面就针对本游戏对上述几个方面进行简单的介绍,如下所列。(1) 游戏规则,本游戏为轻量级的消去类益智游戏,因此不存在很复杂的规则。这方面主要借鉴七彩祖玛与自己的构想。射击出珠子与轨道上的珠子相结合,颜色相同即可以消失得分,直到轨道上的珠子通通都被清干净为止。(2)关卡设计,本游戏设为九个关卡,每个关卡的珠子的运行速度不同,珠子出现同色的概率不同,通过控制珠子的运行速度和出现同色的概率来控制不同关卡的难度。(3)目标受众,这个游戏受众主要为年轻人。考虑到受众面广的原因,将画面设定为卡通画形式,使画面更加年轻化。 (4)运行的目标平台,本游戏的目标平台为A
17、ndroid2.2以上的Android手机,且硬件支持Open GL ES,设备配有摄像头和重力感应等传感器。(5)操作方式,本游戏采用Android手机触摸屏幕控制游戏,使操作更加简单方便。游戏使用Eclipse作为主要的开发工具,使用Photo Shop作为图片处理工具,使用3Dmax作为3D模型处理工具。2.2. 美工需求一款游戏是否受欢迎,取决于它的娱乐性和可观赏性,高速发展的游戏产业使玩家的要求越来越严格,所以游戏的界面美化和图形设计对一个游戏至关重要,这将直接影响玩家的体验。本游戏的一些美工需求如下:1. 3D模型:五彩珠子要求用3D模型实现,3D珠子模型文件需要有旋转动画,程序根
18、据游戏逻辑调用相应动画,用3DMax等3D处理软件达到需要的效果;并利用3Dmax的插件导出MD2格式的模型文件。 2. 图片:游戏中需要物品的显示,需要通过触摸进行一些操作,用图片来显示既美观又方便操作;格式要求PNG,PNG格式提供透明背景的图象,这对绘制游戏画面组合游戏元素带来极大的方便。计划采用网上素材和设计这两种方式,用PhotoShop ,3DMax等处理软件处理游戏素材达到需要的效果。2.3. 功能需求项目实现祖玛游戏的所有基本功能,同时为了提高更好的体验度,在游戏中加入了背景音乐和音效等效果,从而使游戏从感官上更加吸引玩家。在游戏中为了方便玩家在进行游戏因琐事需要中断游戏设置了
19、中断按钮,玩家如果觉得游戏好玩,还可以通过第三方的社交app分享该游戏。2.4.1. 游戏主界面功能需求良好的用户界面,能够在视觉上吸引玩家。为了使界面简洁美观,需要在主界面中添加背景图片来渲染游戏的气氛,同时为了便于玩家的操作,需要设置四个按钮供玩家选择,分别是“开始”、“背景音乐设置”、“游戏音效设置”、“分享app”。这样的设置让用户一目了然。具体功能如下:(1)开始,点击跳转到游戏关卡界面;(2)背景音乐设置,玩家可以选择是否打开背景音乐; (3)游戏音效设置,玩家可以选择是否打开背景音乐;(4)分享app,点击可以调用第三方社交app分享祖玛游戏。2.4.2. 关卡选择界面功能需求为
20、了方便玩家的选择关卡,当玩家进入游戏之前会先进入选择关卡界面,这个关卡界面共有9个关卡供选择,并且显示每一关的最高分数记录,方便用户对比选择关卡。具体功能如下:(1)显示关卡信息,当前关卡数以及当前关卡的最高分;(2)选择需要开启的关卡,点击关卡进入当前关卡配置的祖玛游戏。 2.4.3. 游戏界面功能需求游戏界面会显示当前游戏的关卡数、当前游戏的得分情况以及下一颗彩色珠子的颜色,玩家点击到轨道上的彩色珠子,则会向点击的方向射出一颗当前颜色的珠子,如果同色大于3个珠子,此时同色珠子会消去,玩家会根据消去彩珠的个数获得分数,这个分数超过当前关卡的最高得分记录,游戏会保存当前玩家的得分为当前关卡的最
21、高得分记录。为防止游戏无意退出,当用户点击back键时游戏会进入暂停状态,并弹出对话框,玩家可以选择(quit)退出或者(resume)恢复游戏,当用户再次点击back键,游戏恢复到运行界面,玩家可以继续进行游戏。(1)分数管理,当前玩家得分后更新当前分数。(2)发射彩珠,玩家点击到目标彩珠会发射当前彩球到目标彩球。(3)游戏暂停,玩家点击到back键时游戏暂停同时弹出选项:恢复、退出。(4)游戏恢复,点击恢复按钮玩家继续当前游戏。(5)游戏退出,玩家点击退出按钮游戏会回退到关卡选择界面。2.4.4. 游戏用例分析根据玩家参与的事件响应分为按钮响应、图片响应、特定区域响应,分别对应玩家点击按钮
22、、点击物品和点击特定区域的动作,根据不同动作做出不同的响应。游戏主界面功能用例图如图2-1所示图2-1 游戏功能用例图游戏运行界面功能用例图如2-2所示。图2-2 游戏功能用例图游戏主界面功能用例图如图2-3所示图2-3 游戏功能用例图以下为游戏功能需求的部分测试用例。其中游戏声音设置用例描述如表2-1所示。表 2-1 游戏声音设置用例描述用例编号201用例名称游戏声音设置用例用例概述游戏玩家完成游戏背景音乐以及音效的开关设置 参与者玩家前置条件玩家已经成功启动该游戏后置条件能够通过开关按钮控制背景音乐以及音效的开关成功保证玩家通过触摸按钮正常操作,能够控制音效和背景音乐的开关基本事件流步骤活
23、动1玩家正常启动游戏,进入游戏主界面2点击音效开关按钮,设置为关闭状态,听不到按键音效和游戏中的音效,完成改变游戏音效开关的任务3再次点击音效开关按钮,设置为打开状态,能听到按键音效和游戏中的音效,完成改变游戏音效开关的任务4点击背景音乐开关按钮,不能听到背景音乐,完成改变游戏背景音乐开关的任务5再次点击背景音乐开关按钮,能听到背景音乐,完成改变游戏背景音乐开关的任务规则与约束玩家按操作说明正确操作分享用例描述如表2-2所示。表2-2 分享用例描述用例编号202用例名称分享用例用例概述游戏玩家进入游戏主界面完成游戏分享参与者玩家前置条件玩家已经成功启动该游戏后置条件能够通过触摸箭头控制游戏场景
24、切换以及相关操作成功保证玩家通过触摸分享按钮正常操作,能够分享App到第三方社交平台基本事件流步骤活动1玩家正常启动游戏,进入游戏主界面2点击分享按钮,弹出社交平台选项框3选择本地的第三方社交平台进行分享规则与约束玩家按操作说明正确操作选择关卡用例描述如表2-3所示。表2-3 选择关卡用例描述用例编号203用例名称选择关卡用例用例概述游戏玩家完成游戏中关卡选择功能参与者玩家前置条件玩家已经成功启动该游戏并进入关卡选择界面后置条件能够通过点击关卡条目进行关卡选择成功保证玩家通过触摸关卡选线条正常操作,能够选择某一关卡基本事件流步骤活动1玩家正常进入关卡选择界面2滑动选项条目,并点击关卡条目进行选
25、择关卡。3能够通过点击关卡条目最终进入游戏界面规则与约束玩家按操作说明正确操作射击用例描述如表2-4所示。表2-4 射击用例描述用例编号204用例名称射击用例用例概述游戏玩家完成击中轨道上的目标珠子 参与者玩家前置条件玩家已经成功启动游戏界面后置条件能够通过点击目标珠子当前珠子射击并插入到目标珠子后成功保证玩家通过触摸目标珠子正常操作,能够射击珠子基本事件流步骤活动续表2-41玩家正常进入游戏界面2点击目标珠子,击中后弹射出珠子到目标珠子后3能够向不同的目标进行设计规则与约束玩家按操作说明正确操作2.4. 本章小结本章详细探究了游戏的需求分析,完成了游戏的内容设计、美工需求和功能需求三个方面的
26、内容。第三章 概要设计本章详细描述游戏设计目标、游戏结构和游戏中需要解决的关键问题。完成设计游戏结构的具体任务:将祖玛游戏按功能进行模块划分以及游戏中需要解决的关键问题,分析这些问题以及解决方法。从游戏结构和游戏中需要解决的关键问题阐述游戏设计过程。3.1. 游戏设计目标对于游戏,尤其是需要与玩家频繁交互的游戏、必须要满足游戏响应及时、使用方便、操作灵活等设计需求。本游戏在设计时应满足以下几个目标:(1) 为玩家提供友好简洁的界面接口。(2)能够使用户方便快捷设置游戏参数。(3)让玩家能将游戏在第三方社区进行分享。(4)实现玩家最高得分数记录存储。(5)游戏最大限度的实现易操作性。(6)游戏运
27、行稳定、安全可靠。3.2. 游戏结构游戏整体结构主要包括声音控制系统、关卡等级系统、碰撞检测系统、运动控制系统,得分检测系统五大功能模块;每个功能模块又具体细化分为不同的子功能模块,其中声音控制系统分为:背景音乐开关控制、音效开关控制,声音控制系统要求满足游戏背景音乐和游戏音效同时播放,音效要求快速及时响应,玩家点击按钮以及玩家开始游戏后射击珠子、珠子撞击、成功得分都能够及时播放音效。关卡等级系统分为:最高得分记录管理、关卡难度级别管理,最高得分记录管理,当玩家的得分超过当前的最高得分记录就可以更新最高得分记录,关卡难度级别控制,依据关卡级别设置难度级别,具体实现的思路为:当玩家消去一定数目的
28、珠子后,如果满足剩余珠子的个数小于关卡总数减去当前关卡值那么在产生珠子的颜色就是在轨道中运行珠子序列中的颜色范围中随机产生一个。运动控制系统分为:射击运行控制、轨道运动,控制运动控制系统主要是能够让珠子运动起来,珠子的运动可以是朝着某个方向射击,同时也可以按照预定的轨道运行。碰撞检测系统主要是检测两颗珠子在发生相对位置变化时,检测他们的位置关系是否发生了碰撞,为游戏逻辑提供游戏状态的改变。系统总功能结构如图3.1所示:游戏声音控制系统关卡等级系统得分检测系统运动控制系统碰撞检测系统射击运动控制轨道运动控制背景音乐开关控制音效开关控制关卡难度控制最得分记录控制图3-1 系统总功能结构图q 声音控
29、制系统一个好的游戏,除了有真实而具有震撼力的游戏画面之外,游戏的音乐与音效也是相当重要的部分,在很多3D设计游戏中,音效的处理也是相当重要的一个工作,需要设计一个真实的3D音效。让玩家根据音效来判断所处的环境。声音控制系统主要是为了实现游戏声音的管理,玩家开启游戏后,能够播放游戏背景音乐,玩家通过设置可以控制背景音乐的开关来控制背景音乐的播放;玩家点击按钮以及玩家开始游戏后射击珠子、珠子撞击、成功得分都能够及时播放音效。实现思路:通过android 底层SDK 提供的声音管理类来实现声音控制系统,MediaPlayer类负责背景音乐的管理,SoundPool负责背景音效的管理。q 关卡等级系统
30、游戏中的关卡设计是一个很棘手的问题。做得好的话能够完善玩家的游戏体验,但是做得不好也同时会毁掉所有的游戏体验。人们总喜欢去征服挑战,没有挑战的游戏会变得很无趣,但是在游戏中安插适当的挑战关卡却是个很困难的任务。也许会在游戏中添加不同难度的关卡,但是做得不好将会让游戏系统变得更加迟钝,并难以与整体游戏相适应。一个选择是,如果你要在游戏中设置不同难度的关卡,你就先要在游戏中设定一个特定的目标,例如在赛车游戏 中,玩家的目标便是到达终点;并为那些喜欢真正挑战的玩家设定一些可选择的目标,如让汽车毫发无损地穿过一些特定的路线。这真的是一个很棘手的游戏设 计元素:因为玩家虽然喜欢挑战,但是同时也不喜欢太困
31、难的游戏。关卡等级系统主要是为玩家提供不同难度等级的关卡供玩家挑战,让玩家能够体验到成就感,设置关卡的最高得分记录,供玩家挑战。实现思路:关卡设置级别,依据关卡级别设置难度级别,具体实现的思路为:当玩家消去一定数目的珠子后,如果满足剩余珠子的个数小于关卡总数减去当前关卡值那么在产生珠子的颜色就是在轨道中运行珠子序列中的颜色范围中随机产生一个;这个过程通过逻辑控制实现。q 碰撞检测系统碰撞检测技术作为一种用于判断一对或者多对物体在给定时间区域内的同一时刻是否占有共同区域的方法,其基本任务是判断两个或者多个物体彼此之间是否发生穿透或者接触,也就是判断在某一时刻两个集合模型是否发生干涉,如果集合模型
32、之间发生碰撞,则进行相应的反馈,几乎在所有游戏中均有所应用。碰撞检测问题是基于现实生活中一个普遍存在的事实两个不可穿透的对象不可能共享相同的空间区域。游戏中,无论是物体与物体之间还是物体与场景之间,如果没有碰撞检测,那么物体之间的穿行就变成透明的,这无疑影响玩家对于真实性的体验。碰撞检测系统主要是检测两颗珠子在发生相对位置变化时,检测他们的位置关系是否发生了碰撞,为游戏逻辑提供游戏状态的改变。实现思想:检测两个珠子之间的距离利用几何公式,可以获取当前珠子之间的距离,比较他们之间的距离和珠子直径的大小关系即可以检测出球是否碰撞。q 运动控制系统 运动控制系统主要是能够让珠子运动起来,珠子的运动可
33、以是朝着某个方向射击,同时也可以按照预定的轨道运行。实现思路:通过在界面重绘过程中动态的设置模型位置实现运动。3.3. 游戏中需要解决的关键问题由于游戏元素使用了3D模型,游戏中模型位置的控制有一定的难度,同时游戏中音效的时效性,也是都具有一定的难度,具体需要解决的关键问题,包括:(1)、获取珠子模型位置关系和大小关系,游戏需要解决珠子模型的位置关系问题,确定这些信息才可以控制珠子完成游戏逻辑,保证他们的位置关系相对正确,不会让玩家感觉到瑕疵,这种信息的精度会直接影响玩家的体验度。本文对该问题进行了详细的分析,并作出解决方案。(2)、珠子模型按照预定轨道运动问题:游戏中的珠子需要运动在预定的轨
34、道中,为了让珠子的运动依照预先设定的轨道,当运行到拐点的时候,珠子模型需要改变运动方向,完成游戏预定的轨道运动,只有精确的解决这个问题,游戏出现bug才能更好的避免。(3)、背景音乐和音效同时播放问题:背景音乐同游戏音效同时播放,能给玩家更好的感官体验,这对有游戏的实现提出了更高的要求,同时播放会出现不能及时响应的问题,只有很好的解决这个问题,玩家的体验才能更加丰富。(4)、关卡难度设置实现:提供不同的等级的关卡,需要完成关卡难度控制,让关卡等级难度设置合理,符合玩家的需求,这是游戏设计需要解决的问题。(5)、碰撞检测问题:弹幕射击类游戏中,游戏中的珠子模型在时刻不停的运动中,游戏系统在每个周
35、期都需要对N个碰撞对进行检测,这样非常耗时,效率很低,影响游戏的生动性与顺畅度。因此,如何提高游戏中的碰撞检测效率是一个很重要的问题。如何选取一个更简单方便的检测模型碰撞,将是解决这个问题的关键。3.4. 本章小结本章详细探究了游戏设计目标、游戏结构和游戏中需要解决的关键问题三个方面的内容。第四章 界面设计本游戏的一项难点在界面设计,好的游戏界面既能使画面美观也能提高对玩家的吸引力。本小节介绍游戏界面的具体实现过程,包括主界面、关卡界面和游戏界面的设计。4.1. 游戏界面整体结构一个别出心裁的游戏界面设计,将会提升游戏的品质,赋予游戏独特的气质,同时游戏界面也是一个发挥情感化设计,提升玩家体验
36、,拉近与玩家之间距离,界面设计也要考虑游戏的风格和游戏内容很好的融合在一起,让玩家体验享受。友好而独特的游戏面应具备: 简单合理、独具风格。游戏界面设计的合理与否直接影响到玩家的体验度。从历史的发展中,尤其在Windows时代,我们可以看出一个良好的用户界面接口给用户带来了极大的方便。为此祖玛游戏界面设计风格定位为:简洁、实用,独具风格。游戏整体界面结构如图4-1所示:游戏界面游戏主界面游戏进行界面关卡选择界面图4-1 游戏整体界面结构4.2. 主界面主界面是玩家进入游戏后第一界面,界面使用很具有漫画色彩的背景图片和几个简单的控制按钮组成,由一张背景图片和4个图片按钮组成,4个图片按钮,分别用
37、来实现开始游戏、设置音效、设置背景音乐和分享App。 在主界面的配置文件activity_main.xml中设置背景图片的路径android:background=drawable/bg,其中bg为图片的名称。设置4个图片按钮的图片路径、位置、以及按钮背景透明。4.3. 关卡选择界面本游戏的难度根据不同关卡也略有不同,共设置9个关卡,难度依次增加,每个关卡都记录当前关卡的最高分,关卡信息使用ListView控件展现,界面简洁操作方便。 每一个关卡选项为ListView的一个Item,关卡信息的字体为了符合背景的风格,调用了一个自定义字体控制的style:style= style/LeveNum
38、,为了ListView更好滑动、点击更符合实际需求,为避免选择后系统自动添加颜色,设置其属性:android: listSelector = #00000000 ,为了让两个相邻的item背景图片串起来的感觉,设置属性去掉分割线和背景:android :background =drawable/trans android:divider= drawable/trans, trans为透明图片。4.4. 游戏界面游戏在进行到不同的状态,会切换到对应的界面,其中有:游戏进行界面、游戏暂停界面、和通关界面。游戏界面由:游戏背景、3D模型、图片、按钮组成;游戏背景由摄像头实时提供。玩家旋转手机看到3D
39、彩珠后,点击屏幕内的珠子,监听器通过获取点击的位置坐标来完成检测是否击中珠子模型,如果击中会产生一个珠子射向目标珠子,并插入目标球之后的位置;插入新珠子后会检查是否得分,大于三个同色珠子即可成功得分,同色珠子消去,界面更新当前分数。当玩家将所有珠子全部消去,游戏自动进入成功晋级界面。游戏开始后,玩家可以按返回键是游戏进入暂停状态,再次按返回键则继续当前游戏。3.5. 本章小结本章详细探究了戏界面的具体实现过程,包括主界面、关卡界面和游戏界面的设计。第五章 详细设计与实现本章详细描述该游戏的设计与实现过程。从总体类框架设计、界面设计、功能设计与实现及卡关设计的解决方案几个方面阐述游戏开发过程。5
40、.1. 类框架介绍该游戏开发的类比较多,为了更好的理解各个类在游戏中所扮演的角色,将框架分类并对各个类的功能进行简要介绍。游戏的类框架如图5-1所示。图5-1 游戏的类框架5.1.1. 公共类公共类主要提供基础的服务:获取资源,包括声音资源,图片资源,3D模型文件的读取;以及声音播放以及控制服务,对metaio SDK 封装后对外提供基础调用。SoundPlayer:游戏声音控制类,包含游戏背景音乐、游戏操作音效的播放以及声音资源的切换。AssetController:游戏数据读取类对Assets文件夹内的资源进行管理,数据资源包含游戏的背景音乐、音效、3D模型贴图等。ArCamViewAct
41、iviry:游戏界面的基类,对AR功能实现进行封装。公共类类图如5-2所示。图5-2 公共类类图5.1.2. 游戏主界面相关类游戏界面相关类主要完成界面设计中的要求,主要继承自Activity,处理玩家与游戏交互,负责响应玩家点击按钮事件、对游戏元素的操作事件。MainActivity:游戏主界面玩家进入的首个界面,这里主要功能包括游戏声音、音效控制实现以及分享功能的实现。LevelActivity:玩家进入游戏之前需要选择关卡,此界面负责显示示游戏等级、最高得分记录信息,并响应玩家点击关卡选项事件。ZumaActivity:游戏界面,需要响应玩家点击屏幕事件,并检测玩家是否点击到珠子模型,同
42、样还要检测玩家的按键事件,检测到返回键,需要弹出对话框,以供玩家选择,是否退出游戏,防止玩家误操作退出游戏,玩家按到HOME键这个,需要停止游戏的背景音乐,这个还主要包含对游戏逻辑的控制,以及游戏UI的实时更新。ZumaActivity类图如5-3所示。图5-3 ZumaActivity类图5.1.3. 游戏运行界面相关类运行界面相关类是游戏运行时,使用到的核心类,主要负责驱动游戏珠子运行,检测珠子模型的碰撞,监测玩家点击模型事件,获取点击事件后,负责动态产生珠子,产生珠子的方式包括两种一种是:一种为在所有颜色中的珠子中随机产生,另外一种方式为:在制定的颜色种类范围内随机产生;游戏中运行的珠子
43、模型序列需要动态的控制整体的运动行为,可以动态的添加或者减少珠子模型。BallTexture:这个类主要是为了方便获取3D模型的贴图,主要负责完成模型贴图的设置。MyBall:对珠子概念抽象出的类,主要包括珠子的色彩种类,移动速度等属性,通过修改这些属性可以控制其在游戏界面中。BallList:对一串连续的珠子的概念抽象得到的类,主要实现碰撞检测、插入珠子、消去珠子等功能。GAME:记录游戏状态等参数的信息的类。Path:对珠子运动路线抽象出的类,主要记录游戏珠子运动轨迹的拐点信息。游戏运行界面相关类类图如5-4所示。图5-4 游戏运行界面相关类类图5.2. 功能实现本小节主要介绍游戏功能的具
44、体实现过程,包括界面跳转、背景音乐控制、关卡难度设置,玩家得分记录存储,游戏元素碰撞检测等。阐述了游戏中对数据和控制的实现方式与步骤。5.2.1. 界面跳转与特效本游戏由多个Activity组成,进行界面跳转的时候就需要用到Activity和Intent来进行跳转。例如游戏主界面跳转到开始游戏界面 设置intent:intent. setClass (MainActivity. this,LevelActivity.class);执行跳转:startActivity(intent);创建一个Intent,指定由当前MainActivity跳转到LevelActivity,把创建好的Intent
45、作为参数传递给startActivity()方法。由于使用多个Activity,因此需要在AndroidMainfest.xml文件中注册这些Activity。使用标签,嵌套在标签内部。游戏界面为了更玩家更好的体验,设置全屏,在Activity的属性中设置了主题属性并设置screenOrientation属性,android : screenOrientation =portrait android :theme= style/ Theme. FullScreen5.2.2. 适应多种手机屏幕分辨率Android 手机种类繁多,分辨率各异,为了适应不同手机运行画面的一致性,不让图片放大失真,影
46、响玩家的体验效果,需要根据玩家的手机的分辨率动态选择游戏界面用到的资源,具体实现步骤如下:(1)需要在android项目的配置文件AndroidManifest.xml中添加supports-screens标签并设置其属性如下:(2)在android 的资源目录中的三种图片资源drawable-mdpi、drawable-ldpi、drawable-hdpi三个,这三个主要是为了支持多分辨率。drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),FWVGA (480x854)drawable-mdpi里面存放中等分辨率的图片,如HVGA (320x480)drawa
47、ble-ldpi里面存放低分辨率的图片,如QVGA (240x320)系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。5.2.3. 背景声音控制游戏中的声音包括背景音乐和游戏音效,对游戏声音的管理抽象出声音控制类SoundPlayer,MediaPlayer主要用来播放背景音乐,这也是有它的一些特性决定的,资源占用量较高、延迟时间较长、不支持多个音频同时播放等,播放背景音乐。SoundPool主要负责播放短促的音效,SoundPool对播放音效响应速度快,但播放的文件不能大于1M,音效的声音文件也不会大,为了更适好的播放音效,将音效格式转换为了ogg格式,由于音效比较多,Soun
48、dPlayer类中的soundMap属性,通过key,value 的方式更好的操作音效文件。玩家在启动游戏时,初始化游戏用到的背景音乐,以及所有音效。音效和背景音乐默认为打开状态,玩家可以根据需要自行设置。当玩家退出游戏,游戏的声音需要关闭,资源需要释放。需要检测玩家是否按了HOME键判断游戏是否退出,由于android系统不提供home键回调,所以需要时用其他手段获知玩家按home键退出了游戏,要实现这个功能需要监测用户是否按下了Back键,在Back回调函数中设置标记我们可以获知当前activity调用onStop方法不是退出程序,否者认为玩家通过home键退出了程序,其他非Back键调用
49、onStop的方式都判别为游戏退出,背景音乐关闭,资源释放。5.2.4. 游戏关卡实现游戏中的关卡主要目的是为玩家提供不同的难度去挑战,同时体验到成就感。依据关卡等级的高低设置不同的难度供玩家挑战。难度实现原理:主要依据当前玩家剩余的珠子数如果小于某一个值,那么产生的下一颗球的颜色就是当前剩余珠子中的某一种颜色,这样减少了游戏的难度。具体实现步骤:(1) 、读取当前关卡数以及当前剩余珠子的个数并进行比对,如果满足当前剩余珠子数目小于总关卡数与当前关卡数的差的条件即:size()=(10-Level.currentLevel),通过游戏逻辑就可以控制下一颗产生的珠子的颜色。(2) 、随机产生当前剩余珠子中的某一个球的颜色。利用java的数学工具函数Math,可以产生一个随机数,这个随机数可以控制其值的大小,这个可以控制在珠子颜色种类范围内,这样利用这个随机数就可以获取一定颜色范围内的珠子,也就是当前珠子序列中的某一种颜色的珠子。5.1.4. 玩家得分记录存储 在游戏中玩家得分超过当前关卡的最高得分记录就会刷新当前关卡的最高记录,这样玩家有目标,提高了游戏的挑战性。 游戏的关卡的最高得分记录由SharePreference负责保存。SharePreference这种轻量级的键值存储方式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度电商渠道加盟协议书3篇
- 二零二四年度商业租赁合同的标的与属性分析
- 二零二四年度办公室地板采购合同
- 二零二四年度版权许可使用合同(音乐作品)
- 二零二四年度涉外税收优惠政策合同
- 二零二四年度铝合金模板企业员工培训合同
- 二零二四年度影视制作合同的服务条款
- 滨涯幼儿园2024年度学生健康体检合同
- 二零二四年度技术开发合同之技术成果共享与保密
- 二零二四年度煤矿通风系统改善工程承包合同
- 自动化生产线的安全系数优化研究
- 11D703-2 液位测量装置安装
- 运动训练学-运动训练方法与手段
- ESD静电防护检测及管控标准
- 国家开放大学财务报表分析形成性考核
- 工程施工现场应急方案
- 【大数据时代个人隐私保护的法律对策6200字(论文)】
- 宁夏回族自治区地图矢量动态PPT模板(图文)
- 监理日常安全巡视要点监理日常安全巡视要点
- 法律顾问服务职业发展研究报告
- 2023年辽宁省新高考历史试卷(含解析)
评论
0/150
提交评论