游戏要求
游戏规则
- 使用WSAD或方向键上下左右移动player,进入巡逻兵的追捕后逃脱可积累一分,若与巡逻兵碰撞则游戏结束,收集完地图上的所有水晶即可获胜。
游戏设计要求:
- 创建一个地图和若干巡逻兵(使用动画);
- 每个巡逻兵走一个3~5个边的凸多边型,位置数据是相对地址。即每次确定下一个目标位置,用自己当前位置为原点计算;
- 巡逻兵碰撞到障碍物,则会自动选下一个点为目标;
- 巡逻兵在设定范围内感知到玩家,会自动追击玩家;
- 失去玩家目标后,继续巡逻;
- 计分:玩家每次甩掉一个巡逻兵计一分,与巡逻兵碰撞游戏结束;
程序设计要求:
必须使用订阅与发布模式传消息
工厂模式生产巡逻兵
订阅与发布模式
订阅与发布模式
就像我们订阅报刊,有什么时事新闻出现,报社(发布者)可以第一时间印刷数百份乃至数千份报纸(传播媒介),发到各个订阅了该报纸的人(订阅者)手上,这样就完成了信息传播。
与观察者模式的区别
在观察者模式中,观察者需要直接订阅目标事件;在目标发出内容改变的事件后,直接接收事件并作出响应,往往发布者需要对所有的观察者维持一个列表,从而在每次发生变化时通知所有观察者。在发布订阅模式中,发布者和订阅者之间多了一个发布通道;一方面从发布者接收事件,另一方面向订阅者发布事件;订阅者需要从事件通道订阅事件,以此避免发布者和订阅者之间产生依赖关系,从而降低代码的耦合性。
UML类图
这里参照的是师兄的博客,所以直接借用了他的UML类图。
程序设计过程
主要使用了MVC的架构和使用订阅与发布模式传消息
详细代码请见我的GitHub
参照博客
https://blog.csdn.net/C486C/article/details/80153548