第二轮迭代工作记录

第二轮迭代工作记录

一、 音乐播放单例模式

音乐播放单例模式包含在MVC框架中,继承自第一轮迭代已创建的MonoSingleton,它拥有AudioSource(音频源组件)类型的背景音乐m_Bg与音效m_effect,以及资源目录Reso。其中,方法有:

① Awake:音乐播放单例模式初始化。

② PlayBG(播放背景音乐):这个方法接收String类型audioName参数,判断当前正在播放的音乐是否需要更换,播放音乐时利用Reso加载资源和播放音乐。

③ PlayEffect(播放音效):这个方法接收String类型audioName参数,无需判断,直接利用Reso加载资源和播放音效。

二、 场景障碍物

  障碍物的基类是Obtacles类,继承自ReusableObject,其中有生成特效的父类,还定义了一些虚方法以便实现,如产生特效、音效、回收等。

① 栅栏

栅栏分为高、中、低三种,高栅栏只能俯身通过,低栅栏只能跳跃通过,而中栅栏用这两种方式都可以通过。Player中的碰撞检测方法将通过标签(Tag)判断玩家和障碍物是否产生撞击,并发送消息(如果有碰撞,传递碰撞的位置信息)给相关的类产生有关行为。

玩家遇到障碍物时,都会出现这些情况:减速、特效、音效和回收。减速通过Player完成,因而栅栏类的方法中包括这些动作:

A. 特效:通过开启协程,产生一段时间后自动回收的撞击特效对象(Effect类)。

B. 音效:通过音乐播放单例模式的PlayEffect方法播放音效。

C. 回收:直接使用Unspawn方法回收,在回收到子池里之前要先将位置等信息初始化。

② 集装箱

集装箱分为两种,一种是只能躲避的集装箱,碰撞时死亡,另一种是可以上坡行走的集装箱,也能从上面跳下,但如果从旁边向集装箱方向移动,碰撞并死亡。

玩家遇到集装箱的情况和栅栏的情况比较相似,但音效不同,同时碰撞造成死亡,所以发送EndGame事件,更换UI界面为死亡,以后游戏中玩家死亡都会发送这样的事件。

③ 汽车

汽车分为两种,一种是不移动的汽车,它和集装箱有着相同的性质,另一种是可以移动的汽车,通过触发器操作。

可以移动的汽车用置于汽车前方一段距离的碰撞盒检测,当玩家进入该区域时,也就是离汽车近到一定距离时,汽车前驶。

碰撞到汽车时的特效,音效和回收等的处理和集装箱是相似的,不再赘述。

④ 行人

当玩家进入行人的触发区域,产生触发检测时,行人收到消息通知,从路旁跑到对面,在跑的过程中如果撞到玩家,行人会被撞飞,玩家会减速,产生。

和之前的障碍物类似,People(行人)继承了Obstacles,在脚本里重写方法Awake、HtiPlayer、OnSpawn和OnUnSpawn。玩家遇到行人时,行人的方法中还会实现特效、行人被撞飞(在x轴和y轴上添加speed变量,并在它的组件中添加fly动画片段)和回收。玩家的减速仍然在Player里完成。

三、 奖励物品

奖励物品的基类是Item类,继承自ReusableObject,定义了一些虚方法以供实现:产生特效,绕y轴原地转动、发出音效、发送碰撞消息和回收。

① 金币

玩家和金币碰撞时产生音效、特效(和其他物品碰撞则不产生特效,其他物品直接回收)。所以类似地,金币类的方法通过传入位置信息得知特效出现的位置,和Obtacles很类似。

方法中还要SendMassage,发消息给UI界面,增加金币的显示。

② 星星

玩家吃到星星后得到增益效果,即之后一段时间得到的金币数翻倍。通过访问GameModel的属性,得到设置了的默认的技能持续时间,然后开启协程,使这段时间结束后,吃到的金币数不再翻倍。

因为可能在技能持续时间内吃到了新的星星,技能持续时间需要更新为初始值(最大),就需要在开启协程前判断协程是否开启,如果已经开启,停掉当前的协程并重新开启协程。

③ 磁铁

玩家吃到磁铁后,在技能持续时间内会吸收旁边路径上的金币。

玩家遇到磁铁,会在玩家附近产生一个触发器,一旦金币进入触发器范围,就会向中心的玩家移动,然后回收。

④ 终点线

终点线也属于奖励物品的一种,当玩家穿越终点线时,可以继续游戏的时间会变长。它会直接向View发送消息,加时长。

⑤  哨子

哨子代表无敌状态。当玩家吃到哨子时,在技能持续时间里,无视一些障碍物(不能无视集装箱和汽车这样的物体),通过判断当前碰撞的物体的Tag是否是smallFenceBigFence(栅栏的Tag)来无视栅栏。

四、 UI界面

所有UI界面的脚本都继承自View,通过编写脚本来更改界面上金币、距离等数值的显示。

① UIBoard界面

UIBoard界面是正常游戏界面,包括进度条,已获取的金币显示,已走过的距离显示,暂停开关,遇到球门时的有进度条显示的射门按钮,三个技能按钮,三个技能的持续时间

② UIFinalScore界面

UIFinalScore界面是结束游戏界面,它由这几个部分组合而成:分数背景面板,分数显示栏,金币、距离和进球数的数值以及它们的背景面板,玩家的等级以及经验值条,购物按钮,主页按钮和继续游戏按钮。

这个界面将置于UIBoard上使之无法操作。

③ UIDead界面

UIDead界面是游戏失败界面。它显示了一个背景面板,上有“贿赂裁判”的说明字,复活所需金币的数目,以及贿赂按钮和退出按钮。

④ UIPause界面

UIPause界面是游戏暂停界面,它显示了一个背景面板,上有玩家当前的分数、金币、距离、回归主界面按钮、继续游戏按钮以及一个原地玩球的熊猫。

下一轮迭代目标

1.增加换装系统。

2.增加游戏元素 射门,守门员

3.增加装备界面

4.完成多平台发布

猜你喜欢

转载自www.cnblogs.com/oose-rungame/p/11997704.html