2.3 游戏的架构
上一小节实现了游戏的策划和前期准备工作,本节将对该游戏的架构进行简单的介绍,读者可以通过本节进一步了解游戏的开发思路,使读者对本游戏的开发有更深层次的认识。
2.3.1 各个场景的简要介绍
在Unity中,场景的开发是游戏开发的主要工作。每个场景包含了多个游戏组成对象,其中的某些对象还被附加了特定功能的脚本。本游戏包含两个场景。
1.主菜单界面
主菜单界面“MainScene”是转向各个场景的中心场景,在该界面中可以通过单击按钮进入其他界面,如游戏种类选择界面、声音控制界面、帮助界面、关于界面、游戏模式选择界面以及排行榜界面。该场景中的主摄像机“Main Camera”游戏对象被挂载了九个不同的脚本组件,它们分别负责不同的工作,以达到最终呈现的完好效果,详细介绍如下。 “MainLayer.cs”脚本该脚本主要负责绘制主菜单界面以及4个按钮初始化的动态效果。其中,4个按钮分别为开始游戏按钮、声音控制按钮、帮助按钮以及关于按钮。
“MusicLayer.cs”脚本
该脚本主要负责游戏背景音乐和背景音效状态切换。该脚本将实现声音控制界面的背景音乐和游戏音效的开启和关闭。
“HelpLayer.cs”脚本
该脚本主要负责绘制帮助界面,根据玩家手指的上下抹动,实现帮助界面的翻页。帮助界面共八页,详细介绍了该游戏的具体操作玩法。
“AboutLayer.cs”脚本
该脚本主要负责绘制游戏关于界面。在关于界面介绍了游戏的名称、版本号,以及版权所有者“百纳科技”。
“ChoiceLayer.cs”脚本
该脚本主要负责桌球两个游戏种类选择界面,实现了界面初始化时,两个按钮由小放大的动态效果。同时实现了两个按钮的跳转功能,并为后续的游戏界面初始化提供相应的数据。
“ModeChoiceLayer.cs”脚本
该脚本主要负责实现3个按钮的动态效果初始化以及跳转功能,其中包括倒计时模式和练习模式两种模式的选择以及查看排行榜功能。
“RankLayer.cs”脚本
该脚本主要负责绘制排行榜界面。排行榜会实时记录玩家成功完成一次游戏的日期以及得分,并且按照分数由高到低排序,方便玩家查看。
“ConstOfMenu.cs”脚本
该脚本主要负责初始化常量,方便各个脚本的开发。其中包括各个界面中按钮图片索引,界面按钮的移动速度、位置和移动方向等。
“Constroler.cs”脚本
该脚本主要负责统一各个界面的跳转和返回键的应用,同时负责调用各个脚本组件的重新设置数据的方法。
2.游戏界面
游戏界面“GameScene”是本游戏最为重要的界面,也是本游戏的开发重点。该界面中有多个游戏对象,主要包括摄像机、光源、母球、球杆模型和场景模型对象等。
其中,“Ball”和“CueBall”游戏对象被挂载了“BallScript.cs”脚本组件,该组件主要负责为母球和其他花色球和全色球模拟现实的物理性质以及运动状态。“plan”游戏对象则被挂载了“Shadow.cs”脚本组件,主要负责游戏对象的实时阴影。
“AssistBall”游戏对象被挂载了“CalculateLine.cs”脚本组件,主要负责母球到其最近距离桌球的辅助线的绘制,同时根据桌球规则,负责实时闪烁阴影球的发光功能。“CubeB”游戏对象被挂载了“Cube.cs”脚本组件,该脚本负责桌球进洞检测以及音效播放。
该游戏界面还包括其他多个脚本组件,分别负责游戏界面的不同功能,其中包括游戏界面的小地图功能、能量条功能、游戏胜利失败场景绘制功能、第一人称和第三人称视角切换功能和数据记录功能等。
2.3.2 游戏框架简介
2.3.1小节已经对该游戏中所用到的类进行了简单介绍,可能读者还没有理解游戏的架构以及游戏的运行过程。接下来本小节将从游戏的整体架构上进行介绍,使读者对本游戏有更好的理解,其框架如图2-21所示。
从图2-21中可以看出,本游戏主要由两个界面组成,接下来按照程序运行的顺序介绍各个界面的作用以及游戏的整体框架,具体步骤如下。
(1)打开本游戏,首先进入主菜单界面“MainMenu”,主摄像机“Main Camera”被激活,其上挂载的脚本开始执行,显示出主菜单界面。
(2)在主菜单中单击“开始游戏”按钮,进入游戏种类选择界面。选择八球或者九球模式后,进入游戏模式选择界面,游戏模式分为倒计时模式和练习模式。玩家可以任意选择喜欢的游戏模式,单击相应的按钮就可进入相应的模式。在该游戏模式选择界面单击“排行榜”按钮也可以查看排行榜界面。
▲图2-21 游戏框架图
(3)在主菜单界面中单击“声音控制”按钮可弹出设置子界面,可以对游戏的背景音乐和游戏音效进行设置,在设置子界面单击“音乐开关”按钮可以开关背景音乐,单击“音效开关”按钮可以开关游戏音效。
(4)在主菜单界面中单击“帮助”按钮可以从主菜单界面切换到帮助界面,可以通过上下抹动手机屏幕进行翻页查看游戏的帮助信息。按“返回键”可以返回主菜单界面。
(5)在主菜单界面中单击“关于”按钮可以从主菜单界面切换到关于界面,可查看本游戏的关于信息。在帮助子界面中单击“返回键”,可以返回主菜单界面。
(6)在主菜单界面单击返回键,游戏就会正常结束并退出整个程序。