打飞碟
游戏规则与要求
- 游戏内容要求:
- 游戏有 n 个 round,每个 round 都包括10 次 trial;
- 每个 trial 的飞碟的色彩、大小、发射位置、速度、角度、同时出现的个数都可能不同。它们由该 round 的 ruler 控制;
- 每个 trial 的飞碟有随机性,总体难度随 round 上升;
- 鼠标点中得分,得分规则按色彩、大小、速度不同计算,规则可自由设定。
- 游戏的要求:
- 使用带缓存的工厂模式管理不同飞碟的生产与回收,该工厂必须是场景单实例的!具体实现见参考资源 Singleton 模板类
- 近可能使用前面 MVC 结构实现人机交互与游戏模型分离
项目地址与演示视频
项目地址 ->传送门?
视频连接 -> 传送门?
具体实现
动作管理的大部分代码延用上一次作业,需要实现的就只有一个飞碟的飞行动作。
-
FlyActionManager
飞碟的动作管理类,当场景控制器需要发射飞碟时就调用DiskFly使飞碟飞行。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class FlyActionManager : SSActionManager { public DiskFlyAction fly; public FirstController scene_controller; protected void Start() { scene_controller = (FirstController)SSDirector.GetInstance().CurrentScenceController; scene_controller.action_manager = this; } //飞碟飞行 public void DiskFly(GameObject disk, float angle, float power) { int lor = 1; if (disk.transform.position.x > 0) lor = -1; fly = DiskFlyAction.GetSSAction(lor, angle, power); this.RunAction(disk, fly, this); } }
-
DiskFlyAction
通过位置变换和角度变换模拟飞碟的飞行,也可以使用刚体组件