admin 管理员组

文章数量: 1086019


2023年12月25日发(作者:eclipse打开xml文件不显示)

河北工业大学

毕业设计说明书

作 者:

学 号: ******

学 院: 计算机科学与软件

系(专业): 计算机科学与技术

题 目:基于Unity的Android手机小狗快跑游戏的研发

指导者:

评阅者:

2015年5月29日

河北工业大学2015届本科毕业设计说明书

毕业设计(论文)中文摘要

基于Unity的Android手机小狗快跑游戏的研发

摘要:

随着手机时代的到来,越来越多的人拥有智能手机。Android系统由于其卓越的性能,在手机操作系统中占有相当的大的比例。科技的迅速发展使得手机硬件以非常快的速度更新,手机游戏的市场将会越来越大。

本课题实现的基于Unity的Android手机小狗快跑游戏采用主菜单的场景,具有合理巧妙的剧情安排,精心设计各种物理碰撞监视器,系统中有金币和各种道具的设置。游戏设计采用Unity 3D游戏引擎,利用Visual studio 2010作为脚本编译器,开发中运用软件工程的设计过程设计和实现系统功能。

该游戏界面友好,操作方便,鲁棒性强,游戏的各个功能模块均已测试过,能够稳定运行。

关键词:

手机游戏 酷跑类游戏 Unity 3D Android

河北工业大学2015届本科毕业设计说明书

毕业设计(论文)外文摘要

Title

The development of Android mobile phone game the

dog running based on Unity

Abstract:

With the arrival of the era of mobile phone,more and more people have

Intelligent mobile to its excellent performance, Android

occupies a large proportion of the equivalent mobile phone operating

rapid development of science and technology makes the mobile

phone hardware at a very fast speed update,market of mobile phone game will

be more and more.

The realization of the Android mobile phone the dog running game based

on Unity uses the main menu of the scene,with reasonable ingenious plot

arrangement,elaborate design of various physical collision monitors, gold

coins and a variety of props in the system game design Unity

3D game engine,using visual studio as the script

compiler,development,application and realization of the system function

design process of software engineering.

The game has friendly interface,convenient operation,strong robustness,

each function and module of the game have been tested,stable operation.

Keywords:Mobile phone games Unity 3D Android Cool Running Games

河北工业大学2015届本科毕业设计说明书

目 录

1 引言 ............................................................. 1

1.1 Unity 3D基础认识 ............................................... 1

1.2 Unity 3D的发展前景 ............................................. 1

1.3 课题研发意义.................................................... 2

2 平台简介 ......................................................... 4

2.1 开发平台介绍.................................................... 4

2.2 小狗快跑架构分析................................................ 5

3 需求分析 ......................................................... 8

3.1 系统概述........................................................ 8

3.2 系统简介........................................................ 8

4 系统概要设计 .................................................... 10

4.1 游戏设计 ...................................................... 10

4.2 系统架构 ...................................................... 15

4.3 系统功能结构 .................................................. 15

4.4 系统功能模块简介 .............................................. 16

5 游戏界面设计 .................................................... 17

5.1 系统结构设计................................................... 17

5.2 游戏初始界面设计............................................... 18

5.3 游戏主菜单界面................................................. 19

5.4 设置界面....................................................... 20

5.5 成绩界面....................................................... 21

5.6 关于界面....................................................... 21

5.7 游戏界面....................................................... 22

5.8 游戏结束界面................................................... 24

6 系统详细设计..................................................... 25

6.1 模型的布局分析................................................. 26

6.2游戏类的实现 ................................................... 26

6.3 游戏的详细设计及实体类......................................... 28

7 程序调试与测试 ................................................. 31

7.1 程序调试....................................................... 31

7.2 测试........................................................... 31

结 论 ............................................................ 33

参 考 文 献 ....................................................... 34

致 谢 ............................................................ 35

河北工业大学2015届本科毕业设计说明书

1 引言

科技的迅速发展使得手机硬件以非常快的速度更新,随着智能机的出现,手机游戏已经具有很好的娱乐性和复杂的场景描述,交互性的提升和便捷的携带,手机游戏已经堪比电脑的网页式游戏,手机游戏的市场将会越来越大。

1.1 Unity 3D基础认识

Unity 3D是由Unity Technologies开发的一个轻松创建三维视频游戏、建筑可视实时三维化、实时三维动画等交互内容的、多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎,通过Unity简单的用户界面,玩家可以完成任何工作。Unity类似Director、Blender Game Engine、Virtools和Torque Game

Build等以交互的图形开发环境为首要方式的3D游戏引擎软件。NVIDIAPhysX内置物理引擎带给玩家生活的互动。实时三维图形混合音频流、视频流。Unity的游戏和应用可以用C#语言,UnityScript(一种JavaScript的扩展)或者Boo(一种受Python启发的语言)来开发,其编译过程根据不同的目标平台而变化其编译器运行在Window和Mac OS X下,可发布游戏至Window、Max、Wii、iPhone和Android平台,也可利用Unity Web Player插件发布网页游戏,支持Mac和Window的网页浏览,并且Unity的网页播放器也被Mac Widgets所支持。Unity简单的用户界面是层级式的综合开发环境,具备可视化详细的属性编辑器和动态的游戏预览特性。由于其强大的综合编辑特性,因此Unity也被用来快速地制作游戏或者开发游戏原型。Unity图形引擎使用的是Direct 3D(Windows)、OpenGL(Mac,Windows)和自有的APIs(Wii),可以支持Bump mapping、Reflection

mapping、Parallax mapping、Screen Space Ambient Occlusion、动态阴影使用的Shadow Map技术与Render-to-texutre和全屏Post Processing效果。

1.2 Unity 3D的发展前景

近几年来,Android平台游戏、iPhone平台游戏以及Web网页游戏发张迅猛,已经成为带动游戏发展的新生力量。遗憾的是除了少数的作品成功外大部分的游戏都属于宣传攻势大于内容品质的平庸之作。面对这一情况,3D游戏成为独辟1

河北工业大学2015届本科毕业设计说明书

蹊径的一种选择,而为3D游戏提供强大技术支持的Unity 3D引擎,对DirectX和OpenGL拥有高度优化的图形渲染管道,以其创造高质量的3D游戏和真实视觉效果的核心技术,为开发3D游戏提供强大的源动力。Unity 3D不仅在游戏领域里有广阔的应用,其还可以用于3D虚拟仿真、大型产品展示、3D虚拟展会、3D场景导航以及一些精密仪器使用方法的演示等,可谓领域非常广泛。

Unity 3D游戏引擎技术研讨会最早于2011年5月在韩国举行。据悉,现在10种以上新引擎开发都采用了Unity 3D游戏引擎技术。现已有部分开发商利用China Joy展会的契机,展示了该引擎的运行效果,目前已有不少厂商与开发商签订了提前预定引擎的协议。未来几年必定是Unity 3D“大行其道”的时代,其开发群体的迅速壮大、Web Player的装机率的快速提升使得Unity 3D迅速爆发的实机已经到来。曾有业内知名人士“不要再对所谓的Flash 3D抱有什么希望,也不要再去花心思学习那些杂七杂八的Flash 3D插件,赶紧学习Unity 3D才是正经。”

1.3 课题研发意义

在科技和娱乐越来越发达的今天,手机成为我们生活的必不可少的一部分。而手机游戏是手机娱乐的重要组成。现在随着智能机的出现,手机游戏已经具有很好的娱乐性和复杂的场景描述,交互性的提升和便捷的携带,手机游戏已经堪比电脑的网页式游戏。所以,下载一种适合自己的手机游戏可以满足大家闲暇时间的娱乐。Unity广泛用于开发手机平台游戏和网页游戏,成为移动游戏领域较为优秀的游戏引擎。随着手持式终端的快速推广和发展,人们开始逐渐习惯于在手持设备上寻求乐趣,加之一系列物理引擎对手持设备的支持,移动端模拟现实已不再遥远。

本课题是一款基于Android平台的手机休闲跑酷类游戏,本游戏使用当前最为流行的Unity 3D开发工具,结合智能手机的触摸技术打造的一款小型手机游戏。玩家通过滑动屏幕来实现小狗转弯、跳跃、下蹲等效果。游戏充分发挥了酷跑类的游戏节奏,能充分发挥玩家的反应能力。在游戏中玩家通过滑动屏幕控制不断奔跑的小狗,通过小狗的奔跑速度和障碍物设置来及时控制小狗的行动,以此来锻炼玩家的反应能力,给玩家很好的游戏体验。

2

河北工业大学2015届本科毕业设计说明书

1.3.1 课题研究内容

当下流行的跑酷类型游戏有《神庙逃亡》《地铁酷跑》等等。《小狗快跑》是一款第三人称休闲跑酷类游戏。当玩家单击开始游戏按钮后,小狗开始跑动并且记录成绩,路上有些障碍物,玩家通过滑动屏幕来逃避碰撞,收集道路上的金币得到分数奖励。这款游戏操作简单,界面感染性强,采用手持设备为载体,操作感强,适合全龄段进行游戏,此游戏需要玩家大小脑的合理分配,给用户很好的游戏体验。

课题使用Unity 3D游戏引擎作为开发工具和C#脚本作为开发语言,结合智能手机的触摸技术。在Unity新建一个场景,导入资源,然后通过对游戏地图、灯光、天空盒、模型等环境的设置来搭建游戏场景。随后对主相机进行相关设置并进入MonoDevelop编辑器中编写系列脚本。接着创建小狗对象,为其添加动画组件和创建相关的脚本。然后是各种碰撞监视器的创建,通过碰撞检测来决定游戏的状态。还有金币的创建和磁铁道具、圆球道具的创建。最后重中之重的是静态类的构建,在其中可以定义游戏中某些变量以便管理。游戏场景具有很强的立体感和逼真的光彩效果以及真实的物理碰撞,采用特定的游戏引擎自带的着色器呈现出的漂亮的光彩效果,玩家将在游戏中获得真实的视觉体验。本课题运行平台为Android 2.0或者更高版本。

1.3.2 课题重点解决的问题

(1)游戏场景的搭建方面的难题

本课题的游戏场景搭建是一切设计的前提,首先创造一个游戏环境,利用脚本控制环境的无限生成。课题中共有三个游戏跑道环境,通过随机生成下一个跑道,让玩家体会到环境的变化。由于跑道可能会有弯曲处,通过路线的设置,规定小狗一直处于跑道中。

(2)游戏功能设计方面的难题

在小狗快跑这款游戏中,整个游戏功能的设置是此项目的中心。该游戏有多项功能,玩家可以自主地选择要实现的功能,给用良好的游戏体验:

① 运行游戏,首先进入的是欢迎界面,随后进入的是本游戏的加载界面,这里使用异步加载技术,可以直观的看到游戏的加载进度。

② 加载结束后进入本游戏的主菜单界面,这是游戏的中转站,从这里可以3

河北工业大学2015届本科毕业设计说明书

通过单击不同的功能按钮进入不同的界面。单击“成绩”按钮,进入成绩界面,成绩界面上半部分显示游戏的最高路程、分数和金币数,下半部分显示出游戏总的路程、分数和金币数。单击“返回”按钮回到主菜单界面。单击“设置”按钮,进入设置界面。通过滑动滚条设置音量大小和感应灵敏度大小。单击“返回”按钮回到主菜单界面。单击“关于”按钮,进入关于界面。单击“返回”按钮回到主菜单界面。在主界面单击“退出”按钮,退出游戏。

③ 在主菜单选择“开始游戏”,进入游戏界面,正式开始游戏。游戏界面的右下角为暂停按钮,右上角是计分板。当小狗收集到各种道具时游戏界面的左边会出现道具效果的剩余时间显示条。当玩家在游戏界面按下暂停按钮后,会从屏幕上方滚出游戏暂停界面,界面显示本次游戏的路程、分数、金币。单击“主菜单”按钮,返回主菜单界面;单击“新游戏”,从新开始游戏;单击“继续游戏”按钮,从新开始游戏。

④ 当小狗碰撞到障碍物时,滚出游戏结束界面,此时会显示出本次游戏的路程、分数、金币和是否超过最高纪录。单击“主菜单”按钮,返回主菜单界面,单击“再来一次”按钮,从新开始游戏。

(3) 小狗酷跑碰撞逻辑方面的难点

小狗开始时处于屏幕中央,而游戏中的障碍物是随机出现的,因此玩家需要操控小狗躲避障碍物。通过创建碰撞监视器和编写脚本,通过碰撞监视查看小狗是否发生碰撞,若没有发生碰撞,游戏继续运行,否则弹出游戏结束界面。

2 平台简介

每款游戏都需要一个适合开发的平台,手机游戏的平台虽然比较多,但是每款游戏所应用的平台是不同的。合适的平台应该是程序员得力的助手,是游戏设计的初始化灵魂。

2.1 开发平台介绍

在基于Unity的Android手机小狗快跑游戏研发中,主要运用到的工具有三

个:一个Unity 3D游戏引擎,它用于安卓小狗快跑游戏的开源框架,可以为游戏开发者构建3D游戏、演示游戏程序和一些图形界面交互和绘制等。通过Unity的简单用户界面,玩家可以完成任何工作;要使Unity项目能够在手机上运行,4

河北工业大学2015届本科毕业设计说明书

必须将其转化成apk文件,这时需要一个安卓专属的软件开发工具包:Android

SDK;最后一个是Visual studio 2010外部脚本编译器(也可以使用Unity 内置的Monodevelop脚本编译器),开发相关的C#游戏脚本。

2.1.1 开发环境Visual studio 2010

Visual Studio 2010是微软公司推出的开发环境,是目前最流行的Window平台应用程序开发环境。Microsoft Visual Studio 2010支持C#、C++ 、VB多种语言,可以快速实现相应的功能。所写的目标代码适用于微软支持的所有平台,包括Microsoft Windows、.NET Framework、.NET Compact Framework 和Microsoft Silverlight 及Windows Phone。特点易于使用、高效、灵活。在此设计中利用其开发Unity游戏相关的C#脚本。

2.1.2 插件Android SDK

SDK是Software Development Kit的简称,中文名译为软件开发工具包。被广大软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。Android SDK 指的是Android专属的软件开发工具包。

2.1.3 游戏引擎Unity

Unity是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游

戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,

是一个全面整合的专业游戏引擎。Unity类似于Director、Blender Game engine、

Virtools 和 Torque Game Builder等利用交互的图型化开发环境为首要方式的

3D游戏引擎软件。其编辑器运行在Windows 和Mac OS X下,可发布游戏至

Windows、Mac、Wii、iPhone、Windows phone 8和Android平台。也可以利用

Unity web player插件发布网页游戏,支持Mac 和Windows的网页浏览。实时

三维图形混合音频流、视频流。

2.2 小狗快跑架构分析

开发课题时,在完成游戏开发前的策划和准备工作后,就要进行设计游戏场景和相关脚本编写工作,并且描绘游戏的整体架构。

2.2.1 游戏场景及相关脚本

基于Unity的小狗快跑游戏开发中,场景开发是游戏开发的主要工作。每个5

河北工业大学2015届本科毕业设计说明书

场景包含多个游戏对象,其中某些对象还被附加了特定功能脚本。本游戏包含包含三个游戏场景,接下来对几个场景进行简要的介绍。

(1)主菜单场景

“Welcome”是游戏场景的中心场景,该游戏场景中有多个游戏对象,主要包括主摄像机、小狗、森林等模型或者场景对象。在该场景中可以通过单击按钮进入其他界面,如游戏界面,设置界面,关于界面,成绩界面等,该场景中包含的脚本如图2.1所示。

主菜单

场景

主摄相机(,,

,,)

小狗(,)

小狗跳跃监视器

()

小狗下滑监视器

(CrashSmallColider.c

图2.1主场景的框架图

(2)游戏场景

游戏场景”StartGame”是本游戏最重要的场景,该场景中有多个游戏对象,主要有摄像机,小狗,森林,障碍物,金币,磁铁,钻石等模型或者场景对象。本游戏中的其他对象,如特等粒子渲染效果、金币模型等被制作成预制作。该场景中包含的脚本如图2.2所示。

小狗跳跃监视器

()

主摄相机(,,

,)

小狗(,

)

游戏结束监视器

()

小狗下蹲监视器

()

图2.2游戏场景的框架图

6

河北工业大学2015届本科毕业设计说明书

(3)加载场景

加载场景”Loading”用于实现游戏场景的异步加载,显示进度条。场景中包含主摄像机”Main Camera”,其功能是实现异步加载到其他的游戏场景、绘制加载进度条等,这样可以动态地显示加载进度。该场景中包含的脚本如图2.3所示。

加载场景

主摄像机()

图2.3加载场景的框架图

2.2.2 游戏框架简介

(1)打开本游戏,首先进入的是主场景”Welcome”,主摄像机”Main Camera”被激活,其挂载的脚本””和挂载在”Player”的游戏对象的脚本””开始执行,显示出主菜单界面,小狗原地不动。如果设置了背景音乐为可播放,则同时播放背景音乐。

(2)在主菜单界面单击”开始游戏”按钮后,则游戏进入场景”StartGame”.该场景的主相机激活,开始执行其上挂载的脚本””,””,

””,””

(3)在脚本””的作用下,在场景上生成金币,磁铁,钻石和障碍物等。在脚本””的作用下摄像机跟随小狗移动,脚本””用于绘制游戏场景的暂停按钮,计分板,道具剩余时间等。

(4)“Player”游戏对象挂载的脚本””开始执行,小狗在””脚本的作用下不断地向前奔跑。“Player”游戏对象下的子对象“Dog”上挂载“Player”的””用于让玩家控制小狗跳跃,下蹲,左转和右转。

(5)主菜单界面单击”成绩”按钮,主摄像机上挂载的脚本””被禁用,而脚本””被启用,进入成绩界面。

(6)主菜单界面单击”设置”按钮,主摄像机上挂载的脚本””被禁用,而脚本””被启用,进入设置界面。

(7)主菜单界面单击”关于”按钮,主摄像机上挂载的脚本””被禁用,而脚本””被启用,进入关于界面。

7

河北工业大学2015届本科毕业设计说明书

3 需求分析

需求分析是对一个系统中疑难问题的解决方法进行详细的分析,一般在需求分析中要弄清系统的整个架构,有哪些需求要实现,通过输入一些怎样的数据,通过实现,输出怎样的结果。一个好的需求分析能够定位我们将要进行的事情和要达到的最终成果。

3.1 系统概述

游戏分为五个大模块:开始游戏、成绩、关于、设置、退出。游戏采用主菜单场景,玩家可以自由地选择要实现的功能。成绩模块显示玩家游戏信息,设置模块进行游戏设置,开始游戏模块实现运行游戏,关于模块介绍游戏开发者信息,退出模块用于退出游戏。系统的用例图如3.1所示。

图3.1 系统用例图

3.2 系统简介

在安卓版的小狗酷跑游戏系统中,总共提供五个系统功能:成绩功能、设置功能、开始游戏功能和关于功能。

8

河北工业大学2015届本科毕业设计说明书

3.2.1 成绩

成绩里存储着游戏玩家的相关信息。成绩里有两大模块:单词游戏和总游戏时间,单词游戏中可以显示最高分、最高路程、最多金币;总游戏时间里面显示总游戏时间、总路程和金币总数。成绩功能的设计在表3.1中列出。

表 3.1 成绩的详细设计

Name Function Precondition Postconditions Basic Flow

玩家进入了游 玩家点击成绩 玩家进入成绩界面

成绩 玩家可以查看自己的游戏信息 戏主界面 按钮

3.2.2 设置

游戏设置对小狗快跑的背景音乐和灵敏度进行了设置,玩家可以根据自己的喜好进行设置,比如背景音乐的开启和关闭。游戏中的设置这一功能的设计用表3.2来说明。

表 3.2 设置的详细设计

Name Function Precondition Postconditions Basic Flow

玩家对游戏设置玩家对游戏属性的改变

①玩家进入游戏设置界面。

②进行设置

设置 玩家可以设置背景音乐和灵敏度 进行更改

3.2.3 关于

关于部分主要介绍游戏开发者信息,让玩家更进一步了解游戏。表3.6列出了游戏中帮助的具体内容。

表 3.2 关于的详细设计

Name Function Precondition Postconditions Basic Flow

玩家想要对游 点击返回退出 在主菜单界面 关于 介绍游戏的开发者信息 戏初步了解 关于界面 点击选项关于

3.2.4 开始游戏

开始游戏功能让玩家正式进行游戏,开始游戏功能在表3.4中列出。

表 3.2 开始游戏的详细设计

Name

开始游戏

Function Precondition Postconditions Basic Flow

游戏结束点击主进入主游戏界面 界面按钮

点击开始游戏按钮

玩家可以进入游戏,正式开始游戏

9

河北工业大学2015届本科毕业设计说明书

4 系统概要设计

在系统概要设计里,包含一些系统的架构,主要功能之间的结构体系。复杂的结构可以通过简单的对象使之简化,然后再将这些分解的对象合并达到最终的系统。

4.1 游戏设计

游戏的设计是对整个游戏的构思和布局,在游戏实现最初要有一定的规划设计,这样在游戏实现时,就明白该怎样一步一步的进行了。小狗快跑项目文件组织设计,如图4.1所示。

图4.1小狗快跑文件组织设计图

1 0

河北工业大学2015届本科毕业设计说明书

4.1.1 小狗快跑游戏背景

跑酷是一种非常受青少年喜爱的极限运动,但生活中由于环境和能力的限制,人们无法体验到跑酷的快感。在这种环境下跑酷类游戏孕育而生。因为跑酷类游戏能够非常发挥玩家的反应能力,非常适合青少年休闲娱乐,所以现在非常流行。

4.1.2 游戏功能的设计

(1)运行游戏,首先进入的是欢迎界面,随后进入的是本游戏的加载界面,这里使用异步加载技术,可以直观的看到游戏的加载进度。

(2)加载结束后进入本游戏的主菜单界面,这是游戏的中转站,从这里可以通过单击不同的功能按钮进入不同的界面。单击“成绩”按钮,进入成绩界面,单击“返回”按钮回到主菜单界面。单击“设置”按钮,进入设置界面,单击“返回”按钮回到主菜单界面。单击“关于”按钮,进入关于界面。单击“返回”按钮回到主菜单界面。在主界面单击“退出”按钮,退出游戏。

(3)在主菜单选择“开始游戏”,进入游戏界面,正式开始游戏。游戏界面的右下角为暂停按钮,右上角是计分板。当小狗收集到各种道具时游戏界面的左边会出现道具效果的剩余时间显示条。当玩家在游戏界面按下暂停按钮后,会从屏幕上方滚出游戏暂停界面,界面显示本次游戏的路程、分数、金币。单击“主菜单”按钮,返回主菜单界面;单击“继续游戏”按钮,继续本次游戏。

(4)当小狗碰撞到障碍物时,出现游戏结束界面,此时会显示出本次游戏的路程、分数、金币和是否超过最高纪录。单击“主菜单”按钮,返回主菜单界面,点击开始游戏可以继续进行下一次游戏。

4.1.3环境类

环境类是游戏的一个重要的类,环境类主要定义游戏的跑道环境,此游戏共有三个环境。不同的环境拥有不同的路线点集,详细设计如图表4.1所示。

表4.1 环境的详细设计

Name WaypointsNumber Characteristic

路线点是弯曲的,但是在同一高度上

路线点是直线的,而且在同一高度上

路线点是弯曲的,同时高度不一致

forest_1

forest_2

forest_3

34

2

27

11

河北工业大学2015届本科毕业设计说明书

4.1.4道具类

道具类定义了游戏过程的出现的各种道具,其中包括金币、磁铁和钻石。每个道具生成的概率有所不同,并且拥有各自的效果加成,道具详细设计如图表4.2所示。

表4.2 道具的详细设计

Name Probability Functions

分数加成,获取一个金币增加10分

无敌状态,并且吸附金币,跑动速度加快

磁铁效果,可以吸附金币

ToolCoins

ToolCurrencys

ToolMagnets

98.5%

0.5%

1%

1 2

河北工业大学2015届本科毕业设计说明书

图4.2 道具类的详细参数

4.1.5障碍物类

障碍物类定义游戏的多种障碍物,因为障碍物的长、宽、高各不相同,所以道具单行生成的个数可能不一样,详细设计如图表3.3所示。

表3.3 障碍物的详细设计

Name

Obstacles_BarbWireMultiLane

Obstacles_BarbWireSingleLane

Obstacles_FallenTree

Obstacles_Rock

Obstacles_tree_branch

Obstacles_TreeBark

Obstacles_TreeStump

1 3

LineMaxNumber

1

3

1

3

1

1

1

Collider

3 Box Collider

3 Box Collider

3 Box Collider

1 Box Collider

3 Box Collider

1 Capsule Collider

1 Capsule Collider

CenterHeight

6

5.62

7

6.23

0

4.37

6.25

河北工业大学2015届本科毕业设计说明书

图4.3 几种障碍物的详细参数

4.1.5 游戏中对碰撞逻辑的说明

小狗一直处于屏幕中央,而游戏中的障碍物是随机出现的,因此玩家需要操控小狗躲避障碍物。通过创建碰撞监视器和编写脚本,通过碰撞监视查看小狗是否发生碰撞,若没有发生碰撞,游戏继续运行,否则弹出游戏结束界面。

4.1.6 小狗动画模型播放规则

在安卓版小狗快跑游戏中,不同的小狗动画模型播放的速度有所不同。其中奔跑动画每秒2帧,左转和右转动画每秒0.2帧,跳跃动画每秒0.5帧,下蹲动画每秒0.1帧。小狗模型不同动作的动画是根据玩家操作进行切换播放的。

1 4

河北工业大学2015届本科毕业设计说明书

4.2 系统架构

小狗快跑的总体架构包括:游戏加载、游戏主界面、选择功能、游戏开始、设置、成绩等。游戏系统的架构如图4.1所示。

图 4.1 系统整体架构

加载游戏:用户在手机上点击游戏后,进入加载游戏界面。

游戏主界面:玩家可在主界面中看到游戏的整体包涵功能。

游戏开始:玩家开始体验游戏的快乐。

成绩:玩家可以查看自己历史最高成绩、获得金币数等。

设置:玩家根据自己的喜好对游戏可以改变的功能进行选取。

4.3 系统功能结构

游戏的主要功能模块有:加载游戏、设置、关于、成绩和开始游戏。加载游戏时,会显示缓冲条和游戏图片。加载结束后进入主界面,主界面有五个选项。游戏系统机构图结构如图4.2所示。

1 5

河北工业大学2015届本科毕业设计说明书

图4.2系统功能结构图

4.4 系统功能模块简介

这一款游戏主要功能模块有:成绩、关于、开始游戏、设置、退出游戏等功能模块。

4.4.1 成绩功能

成绩界面是游戏的主要界面之一,在成绩界面中玩家可以看到相关的游戏信息。成绩界面显示信息主要分两个模块:单次游戏和总游戏时间。单次游戏模块汇报玩家游戏中的最高分、最高路程和最多金币,而总游戏时间模块中统计玩家游戏的总游戏数、总路程和总金币数。成绩界面让玩家可以更加了解自己的游戏信息,以激励玩家挑战自我,更进一步。

4.4.2 关于功能

关于功能主要介绍本游戏开发者信息和游戏操作方法。在主菜单界面右上方,玩家点击“关于”按钮后进入关于界面,在此界面中玩家可以查看游戏的相关信息的介绍,此功能可以让玩家更快上手此游戏。

4.4.3 开始游戏功能

在主界面的正中方点击开始游戏选项,小狗模型开始奔跑,玩家正式进入游戏,体验游戏的快乐。

4.4.4 设置功能

设置游戏功能可以对游戏进行相关设置,玩家可以根据个人需求和爱好来调1 6

河北工业大学2015届本科毕业设计说明书

节游戏音乐的音量大小和重力感应灵敏度。进入主菜单,然后点击“设置”选项,即可以进入对背景音乐和重力感应灵敏度的设置,当开启背景音乐后,在游戏中会有相应的背景音乐出现,可以使玩家玩的更酣畅。

4.4.5 暂停功能

游戏运行界面中右下角有“暂停”按钮,点击按钮后游戏进入暂停界面,玩家如果想要继续游戏,点击界面中的“继续游戏”按钮,回到游戏界面并且有3秒的缓冲时间。当玩家遇到特殊情况,可以选择暂停来保存游戏进度,这充分照顾了玩家的需求。

4.4.6 退出功能

在游戏主界面我们设置了退出按钮,而在游戏运行界面我们设置了暂停按钮。暂停是在玩家需要暂时停止一会游戏时触发的事件,而玩家在需要退出游戏时点击或点触主菜单退出游戏就可以退出小狗快跑游戏了。

5 游戏界面设计

众所周知,游戏的界面是最直接与玩家接触的平台,而这一平台对玩家来说也是最重要的。一个比较好的游戏界面除了可以很快的吸引玩家,还可以帮助玩家快速的进入游戏状态。

游戏界面的合理化设计是人和机器相互进行交互的最直接的操作方式。游戏的界面一般要求营造美观,操作简单、秩序感比较强而且要有一定的引导功能,好的游戏界面能为游戏的宗旨和游戏的内容所服务。

5.1 系统结构设计

通过分析软件的架构和体系,设计了该款Android版的小狗快跑游戏,游戏的主要界面包括:游戏加载界面、游戏主菜单界面、游戏成绩界面、游戏设置界面、游戏关于界面。

玩家在手机点击游戏的图标,启动软件后屏幕会显示游戏的一个初始界面,加载界面后画面跳转到游戏主菜单界面。在游戏的主菜单界面,有三大块:游戏成绩,查看关于功能和游戏设置模块。不同的界面具有不同的功能,各个界面的转换关系如图5.1所示。

1 7

河北工业大学2015届本科毕业设计说明书

图 5.1 界面转换关系图

5.2 游戏初始界面设计

玩家在开始游戏时候会看到一个加载界面。加载界面有三个图标:小狗形象图标、游戏名图标和加载进度条图标,加载界面的显示需要相关脚本支持。运行界面如图5.2所示。

图5.2加载界面

1 8

河北工业大学2015届本科毕业设计说明书

5.2.1缓冲条的实现

为了更好游戏的游戏体验,在各个场景之间跳转时都会显示加载界面,用于显示加载背景和加载进度。加载进度的显示主要运用以下代码:

Progress = ss; //获取加载进度

loadX = * 0.8f * (progress - lastProgress); //设置加载条显示位置

lasProgress = progress; //将加载进度赋给上一次加载进度

5.3 游戏主菜单界面

主界面有五个按钮:成绩、关于、设置、退出和开始游戏。各个按钮响应的界面和背景不同。成绩按钮响应成绩界面,关于按钮响应关于界面,设置按钮响应设置界面,退出按钮响应退出游戏,开始游戏按钮响应游戏界面。主游戏界面界面友好,容易操作,鲁棒性强,可以给玩家很好的游戏体验。游戏主菜单运行界面如图5.2所示。

图5.3

主菜单运行界面

1 9

河北工业大学2015届本科毕业设计说明书

5.4 设置界面

设置界面有两个选项:感应度和音量,通过滑动滚动条可以来设置它们的大小。设置的运行界面如图5.4所示。

图5.4 设置运行界面

5.5 成绩界面

成绩界面主要是记录玩家游戏各种数据,在这个界面你可以知道最高分数、最高路程、最多金币数、总路程、总金币数、总游戏数等。玩家可以查看自己的游戏信息。成绩累计的主要相应程序:

fenShu = ("fenshu"); //获得最高分数

luCheng = ("lucheng"); //跑得最高路程

jinBi = ("jinbi"); //获得最高金币数

zongLuCheng = ("zonglucheng"); //获得总路程

2 0

河北工业大学2015届本科毕业设计说明书

zongJinBi = ("zongjinbi"); //获得总金币数

zongChangShu = ("zongchangshu"); //获得总游戏数

成绩的运行界面如图5.5所示。

图5.5成绩的运行界面

5.6 关于界面

关于界面主要作用就是简单地介绍游戏的玩法和游戏开发者信息,让玩家充分了解游戏相关的信息。关于界面的运行界面如图5.6所示。

2 1

河北工业大学2015届本科毕业设计说明书

图5.6 关于的运行界面

5.7 游戏界面

点击开始游戏后,进入游戏界面,小狗对象开始跑动。仪表板开始绘制并记录路程和分数。障碍物随机生成,同时金币和道具模型生成。游戏过程中玩家如有需要可以选择暂停,暂停回来有三秒的缓冲时间,这充分照顾玩家的需求。跑酷游戏的核心脚本是无限环境生成,当小狗跑动时,主摄像机的要检测小狗位置的z轴坐标值(即n.z),以便生成下一个环境。其代码如下:

public class EnvironGenator : MonoBehaviour

{

public Forest forest1; //小狗对当前所处环境

public Forest forest2; //小狗下一个要进入的环境

public int forestCount = 2; //小狗经过的环境个数

public GameObject[] forests; //环境对象数组

2 2

河北工业大学2015届本科毕业设计说明书

public void GenerateForest()

{

forestCount++;

float z = 3000 * forestCount;

int index = (0, 3); //0 1 2

GameObject newForest = tiate(forests[index], new

Vector3(0, 0, z), ty) as GameObject;

forest1 = forest2;

forest2 = ponent(); //生成下一个环境

}

}

}

游戏进行的运行界面如图5.7所示。

图5.7 游戏的运行界面

2 3

河北工业大学2015届本科毕业设计说明书

图5.7 游戏暂停的运行界面

5.8 游戏结束界面

当小狗触碰到障碍物的时候,会弹出游戏结束界面。结束界面会显示玩家本次游戏的小狗奔跑路程,获得的金币数以及得到的分数。而且会显示玩家是否超越记录,若超越则显示新记录,反之显示与记录的差距。点击“主菜单”按钮,游戏将会返回游戏主菜单界面。游戏结束运行界面如图5.8所示。

2 4

河北工业大学2015届本科毕业设计说明书

图5.8 游戏结束的运行界面

6 系统详细设计

小狗快跑游戏采用的是面向对象的设计方法,在最初的设计过程中是将系统中的各个事物看做不同的对象。有些对象很复杂,于是我们用一些比较简单的对象以组合的形式构建成一个复杂的对象,这样就需我们将不同的对象划分为相应的对象类,根据C#语法对这些对象类进行定义数据和方法,并且根据相关关系来建立子类与父类,这样的结构关系使得程序员的思路更清晰明了。

2 5

河北工业大学2015届本科毕业设计说明书

6.1 模型的布局分析

在Unity游戏引擎中将每一个对象看做是一个模型。各个模型都会有一定的属性,相似属性的模型分配到同一层次,这样每个对象的层次关系就很明确,易于程序的调试和阅读。模型层次分布如表6.1所示。

表6.1模型层次分布

6.2游戏类的实现

在小狗快跑游戏的界面设计中,需要在游戏的静态类中定义各种不同状态的常量(布尔常量):游戏暂停Stop、游戏成绩界面GradeDisplay、游戏设置界面Options、游戏关于界面Explations。众所周知,当在系统中有很多选择时,逐个界面一次实现。绘制不同状态的游戏界面。

6.2.1 WelcomeButton类

WelcomeButton类是对游戏的主菜单界面的定义,在这个类中定义了开始游戏的按钮的位置,在Unity游戏引擎中获取背景图片和按钮图片常用代码如:(new Rect(图片来源),然后对其横纵坐标进行绘制。在初始化时,将所有点触按钮设置为false,并用布尔型来定义按钮的状态。当按下指定按钮2 6

河北工业大学2015届本科毕业设计说明书

位置时,相关事件得到响应,进入到下一个界面。WelcomeButton类图如图6.2所示。

图6.2 WelcomeButton类图

6.2.2 Gradisplay类

游戏的成绩类帮助游戏定义一个成绩信息的类,将玩家的信息显示在一个特定图片的相应位置。玩家可以查看自己的游戏状态,玩家点击屏幕上的“返回”按钮,可以将成绩界面关闭,转换成游戏的主菜单界面。GradeDisplay类图如图6.3所示。

图6.3 GradeDisplay类图

6.2.3 Explations类

Explation类定义游戏的关于类,将有关游戏的操作方法和开发者信息附在相应的图片上。在玩家最初接触游戏时打开关于,使玩家更快的了解游戏,进入角色。在查看完关于界面后,玩家在屏幕上点击“返回”按钮,将帮助窗口关闭,转换都游戏的主菜单界面。Explation类图如图6.4所示。

2 7

河北工业大学2015届本科毕业设计说明书

图6.4 Explation类图

6.2.4 Options类

Options类是设置游戏选项使用的类,这里用来设置游戏背景音乐和重力灵敏度的功能。玩家在游戏屏幕点击设置后,然后拖动滑动条来设置的游戏功能。相应的类图如图 6.5所示。

图6.4 Option类图

6.3 游戏的详细设计及实体类

6.3.1 静态类的创建

游戏开发过程中往往会用到静态类,静态类无法被继承与实例化,同时会优先加载。在静态类中定义游戏中的某些变量可以方便管理。小狗酷跑游戏静态类中定义了小狗的奔跑状态、位置状态、跳跃下蹲标志位、道具效果状态和时间等变量。在“chushihua”方法中,初始化以上定义了的静态变量。

6.3.2 小狗的跑动和动画播放

小狗的跑动时由DogMove类实现的在DogMove类中首先要定义玩家操作枚举类型。在程序中定义小狗的跳跃高度和奔跑速度,以及各种判断标志位。在小狗跑动的过程中,Update()函数开始统计小狗奔跑的路程和分数。DogMove类的成员方法和成员变量如图6.5所示。

2 8

河北工业大学2015届本科毕业设计说明书

图 6.5 DogMove成员方法和成员变量

在游戏中小狗动画播放定义为DogAnimation()类,声明游戏中小狗七种状态。游戏开始时,初始化小狗模型处于Idle状态,然后根据玩家的操作处于不同在游戏状态。不同的状态对应着不同的动画模型,播放速度有所不同。在LateUpdate()函数中,实现操作的不同转化。

6.3.3 森林类的实现

森林类用来实现,在该类中定义类障碍物之间的距离值和道具之间的距离值。当游戏开始时,环境地图中自动生成各种障碍物和道具。每个道具生成的概率有所不同,加成效果也不同。道具生成代码如下:

void GenerateTools() //生成道具

{

float z = beginPoint; //最早出现道具的地方

while (true)

{

float length = (mindistance, maxdistance); //两个道具相隔的距离在(minLength,maxLength)

z += length;

if (z > 3000)

{ break; }

Vector3 waypoint = GetWayPoint(z);

GenerateTools(waypoint);

2 9

河北工业大学2015届本科毕业设计说明书

}

}

void GenerateTools(Vector3 position) //生成道具

{

int index = (0,200);

if (index < 197)

{

Tools cos = (tiate(tools[1]) as Tools); //98.5%的概率生成金币

lf(position, orm);

}

else if(index < 199) //1%的概率生成磁铁

{

Tools mas = (tiate(tools[0]) as Tools);

lf(position, orm);

}

else

{

Tools cys = (tiate(tools[2]) as Tools); //0.5%的概率生成钻石

lf(position,orm);

}

}

6.3.3 森林环境的无限生成

跑酷游戏的核心代码就是无限环境的生成,只有在此情况下玩家才能挑战自我,创造更高的记录。本游戏的无限环境通过EnvGenerator类来实现,代码主要通过不断获取小狗的z坐标的大小来判定下一跑道环境的生成。当小狗每跑3000米的时候,开始生成下一个环境,并且最好是小狗跑出当前的跑道200米后,再消除上一环境,这样会使得环境看起来连贯,不会出现界面脱节现象。而且环境是自动随机生成,玩家在游戏的过程中赏心悦目。

3 0

河北工业大学2015届本科毕业设计说明书

7 程序调试与测试

每个系统从开发到完成的过程中,都要多次的反复调试。一方面的原因是程序语法上的错误会使得系统不能正常运行;而另一方面就是界面的布局不合适,最后得到的界面不如人意;或者是系统中某个功能不能实现等等,这些情况都需要程序员对系统进行不断的调试,从而使系统接近完美。

7.1 程序调试

7.1.1 小狗跳跃但不降落

在运行项目时发现小狗跳起后,就一直停在半空中没有降落。因此在代码中用来检测。代码在执行多遍中观察小狗的y轴坐标值,发现当小狗跳跃时,y值增大后降落的程序没有执行。这是因为判断跳跃标志targetJumpHeight没有初始化,使得程序默认小狗不下降。在函数之前targetJumpHeight赋值为0,降落的程序正常运行。

7.1.2 游戏过程中出现闪动小狗图标

游戏运行的时候,总是会出现小狗图标闪动,非常影响玩家的游戏体验。利用写日志查看小狗的坐标值发现,当小狗无限接近路线点时,小狗有一瞬间x轴坐标增大。多次检测得出结论,原本程序中小狗是根据路线点位置来旋转调整位置,而当小狗无限接近路线点时,只剩一个y坐标值,而一个坐标值无法确定一个方向,使得小狗旋转方向不确定,出现闪动图标。而过了路线点后,小狗的旋转方向又确定了。在此情况下,设置一个精确度判断,可以避免此情况。

7.2 测试

在整个系统的实现过程中,为了确保软件的功能正确运行,测试是不可或缺的一部分。在开发软件时,系统出现异常是很难避免的,其中有些异常是可以简单直接发现,但有些异常则需要我们花费较大精力去调试的。一个系统没有经过仔细的测试环节,将会很难投入运行。因此,系统的测试就显的极为重要。安卓的小狗快跑游戏的测试项目有:单元测试、组合系统测试和用户测试。

7.2.1 单元测试

单元测试是测试某段程序或是最基础的模块。在系统开发中,各个小的模块完成后,都要进行单元测试。比如游戏中初始界面的测试:点击游戏图标后,系统运行。进入游戏加载界面。加载界面的测试包括:加载进度条显示。加载界面3 1

河北工业大学2015届本科毕业设计说明书

到主菜单界面的跳转,利用了定时器的方法,玩家在5秒之内没有操作即进入主菜单界面;在主菜单中对各个按钮的点击,测试游戏的场景转换是否顺畅,应该跳转的界面是否准确,菜单的关于功能的正常显示。在游戏界面测试小狗是否能跳跃下滑左转右转。还有暂停、返回功能键的测试。

7.2.2 组合系统测试

组合系统测试通常有一定的顺序,分为自顶向下或自底向上两种。组合系统测试的前提是要在单元测试无误的情况下才能进行。在小狗快跑的游戏场景中通过滑动手机屏幕来操控小狗的动作,以躲避跑道上的障碍物,获得分数和金币奖励。这一系列的事物最终要组合成一个复杂的对象。在测试中就要相应的对整个过程中的每个环节进行测试。相对于单元测试,组合测试的测试范围更广。并且当各个模块实现后,整个系统是一个整体,Android的小狗快跑游戏的目标是在手机模拟器(ADT)上或是手机真机上进行,这就要求系统运行环境的匹配,模拟器的选择和手机硬件设备的需求都是有一定的要求。系统测试是对整个项目最后的审查,系统中涉及的所有功能实现的测试,不仅对软件进行相应的测试,硬件的配备至关重要。

7.2.3 用户测试

用户测试:用户测试顾名思义就是在用户应用环境下,用户通过应用和使用软件,检测和核实软件是否实现自己预期的要求。比如操作是否流畅、功能是否达到用户使用要求、界面是否友好。一款好的游戏只有赢得越多玩家的青睐才可以显现出来其质量。整个系统完成后,应该在实际应用环境下进行系统的真实测试。

3 2

河北工业大学2015届本科毕业设计说明书

结 论

毕业设计---基于Unity的Android手机小狗快跑游戏的研发从最初接到任务书开始到整个系统的实现经历了长达四个月的时间,在完成毕业设计的过程中,有很多情感的掺杂:任务书下发的艰巨、游戏制作的新奇、万事开头难的困局、各种学习资料的摄取、一点一滴的积累、小有成就的兴奋、调试过程的无奈、最终成型的豁达……

毕业设计选择了安卓版小狗快跑游戏后,开始大量的搜寻素材,查找Unity相关教学视频,学习C#语言,搭建开发平台。因为自己就很迷恋玩酷跑类游戏(神庙逃亡等),所以在做这个游戏的过程中一直都是很感兴趣的。最初设计了很多的界面,有很多创新的想法,但是在具体实现的时候屡屡碰壁,实现起来和想象的差距太大。游戏的设计和实现,让我对C#语言能够熟练的运用,虽然有很多地方还是很模糊,但是基本的语法和结构以及类、包的用法已经熟练掌握。在游戏的编程中,子类和父类用运的比较多,所以比较熟悉。游戏的设计最开始要构思整个游戏的完整结构和整体框架,这是很重要的,通过游戏设计的需求分析一步一步精化,然后再将整体框架细化,各个功能模块的实现和每个模块界面的绘制。在安卓小狗快跑游戏中,运用到Unity这个平台,此开发环境具备视觉化编辑,详细的属性编辑器和动态的游戏预览特性,让开发者更加容易操作使用。而且Unity自动同步了Visual

studio项目里面的源代码,开发者可以自由调用已经封装好的很多Class,非常实用,为开发者节省很多编程时间。通过逐步设计和修改阶段增添更多的模块,功能也会更加完善。课题完成后,会对系统做全面的功能测试,使安卓的小狗快跑更完善。

3 3

河北工业大学2015届本科毕业设计说明书

参 考 文 献

1 吴亚峰,杜华美,于复兴.Unity 游戏案例开发大全.人民邮电出版社,2015.01

2 金玺曾.Unity 3D手机游戏开发.清华大学出版社,2013.8

3 高雪峰.Unity 3D NGUI 实战教程.人名邮电出版社,2015.3

4 王小科,王军.C#开发实战1200例.清华大学出版社,2011.1

5 明日科技.C#从入门到精通(第3版).清华大学出版社,2012.9

6 杨云.PHONE 3G手机软件开发.机械工业出版社,2010.11

7 Android游戏开发大全(第二版) 吴亚峰,于复兴,杜化美 人民邮电出版2013.07.01

8 sional C# 4.0 and .NET 4.51,2014.10

9 sional Android Programming with Mono For

Android and .NET/C#,2013.1

10 宣雨松.Unity 3D游戏开发.人民邮电出版社,2012.06

11 王华秋,刘洁,刘祥.Visual C#.NET程序设计基础教程.清华出版社,2009.07

12 明日科技. Android 从入门到精通.清华大学出版社,2012.09

13 Android 4 游戏入门经典(第3版)(移动开发经典丛书)(美)策希纳著,佘建伟译,清华大学出版社 2013.08.01

3 4

河北工业大学2015届本科毕业设计说明书

致 谢

转眼之间,大学四年的时光已经到达尾声,依稀记得刚进大学时候我最初的稚嫩,在无声青涩中锐变和成熟。能进入大学,首先要感谢我的父母,是他们含辛茹苦的养育我,使得我能够在这里迈向我人生舞台的第一步。

在大学的四年里,已经学习过很多课程,直到现在对老师们谆谆教诲的情景仍然历历在目,我非常感谢在这四年里计算机学院所有老师给予我知识的传授,感谢辅导员在生活和学习上无微不至的关心,感谢同窗们四年的左右陪伴和帮助。

毕业设计的完成给我的大学之旅画上了一个圆满的结局,在这里我要特别感谢我的毕设指导老师李建伟老师。在毕设期间,每个阶段的任务老师都会提前下达通知我们,负责的督促我们每个阶段的进度。在遇到困难和疑惑的时候,老师都会悉心的给我讲解,在老师的点拨指导下,让我对自己的毕业设计更有信心。在毕业设计撰写论文时,老师悉心的审批我的论文,指出我论文中的错误。一遍又一遍耐心的指导,最终我顺利完成论文。

荏苒四年的时光,我感谢母校----河北工业大学对我的培育和每个老师的精心教育,让我的大学满载丰收。明天我将会踏入社会,但我不会害怕。因为我相信:当我走出校门后,未来河工大将会以我为荣!

3 5


本文标签: 游戏 界面 玩家 设置 设计