与游戏世界交互

编写一个简单的鼠标打飞碟(Hit UFO)游戏

游戏内容要求:

  1. 游戏有 n 个 round,每个 round 都包括10 次 trial;
  2. 每个 trial 的飞碟的色彩、大小、发射位置、速度、角度、同时出现的个数都可能不同。它们由该 round 的 ruler 控制;
  3. 每个 trial 的飞碟有随机性,总体难度随 round 上升;
  4. 鼠标点中得分,得分规则按色彩、大小、速度不同计算,规则可*设定。

游戏的要求:

  • 使用带缓存的工厂模式管理不同飞碟的生产与回收,该工厂必须是场景单实例的!具体实现见参考资源 Singleton 模板类
  • 尽可能使用前面 MVC 结构实现人机交互与游戏模型分离

游戏设计与实现

预置UFO:
一个扁球体作为UFO的主体,中间放置一个胶囊作为UFO的头部。
与游戏世界交互
四种颜色的材料
与游戏世界交互
代码实现:
Action:
包含两个文件Action.cs(用户行为和UFO运动)和ActionManager.cs(行为管理)。
Controller:
包含四个文件Director.cs(导演,总控)、GameSceneController.cs(游戏界面控制)、HomeSceneController.cs(菜单界面控制)和Judge.cs(计分,判断游戏状态)。
Model:
包含两个文件UFO.cs(UFO的颜色、分数等特性设置)和interface.cs(各种接口)。
View:
包含一个文件GUI.cs(UI界面设计)。
实战演示:
与游戏世界交互