游戏简介
点击飞行的飞碟,击中则得分。
游戏规则
- 正常模式共有五轮飞碟,当所有飞碟发射完毕时游戏结束。
- 无限模式拥有无限轮数。
- 红色飞碟为1分,绿色飞碟为2分,蓝色飞碟为3分。
- 物理学模式下飞碟会互相碰撞。
设计模式
- MVC模式
- 工厂模式
- 单例模式
- 适配器模式
游戏实现
-
UML图:
-
Singleton.cs
场景单实例类,该类负责当所需的实例被第一次需要时,在场景内搜索该实例,再下一次被需要时则可以直接返回。 -
DiskData.cs
携带飞碟的数据,包括飞行速度、得分、飞行方向。 -
DiskFactory.cs
飞碟工厂,负责生产与释放飞碟。 -
SSAction.cs
动作基类,受Unity引擎场景管理。 -
CCFlyAction.cs
飞行动作,将飞行拆分成水平和垂直两个方向的运动,水平速度恒定,垂直方向施加重力加速度。当飞碟到达底部时,动作结束,将进行回调。由于该飞行是运动学的飞行,因此生成CCFlyAction时会将对象的刚体设为运动学的。 -
ISSActionCallback
回调函数接口。 -
SSActionManager.cs
动作管理基类,负责管理所有的(组合)动作类。 -
CCActionManager.cs
飞行动作管理者,负责生成飞行动作,并接受飞行动作的回调信息,使飞碟被回收,需要实现IActionManager的接口。 -
IUserAction.cs
用户动作接口,提供点击、重置、选择模式(普通模式、无限模式、运动学模式、物理学模式)三个函数的接口。 -
SSDirector.cs
导演类。 -
ISceneController.cs
场景控制类接口。 -
FirstController.cs
场景控制器,负责游戏主要逻辑。 -
UserGUI.cs
界面类,构建UI并捕捉用户动作。 -
IActionManager.cs
动作管理类的接口,要求动作管理类的Adapter模式就是基于这个接口来实现。 -
PhysisFlyAction.cs
实现物体的物理学飞行。 -
PhysisActionManager.cs
物理学飞行动作管理器。 -
RoundController.cs
实现每回合对飞碟的发送、计分等功能。 -
ScoreRecorder.cs
实现了对游戏计分的功能。