游戏项目开发中的“观察者模式”
大家好,我是Lampard
今天与大家探讨一下游戏开发项目中的观察者模式
在进入主题之前我想先问问大家,我们平时在开发游戏时怎么实现人机交互的呢?
无疑就是响应用户的点击事件,我们可以对某一个结点来声明一个监听事件,如果用户点击它那么就实现响应的事件。
因为我之前只开发过一些小游戏,所以对事件的理解就到了这里。However进入了公司之后,我接到了一个需求,要求我在领奖的时候弹出一个特效展示界面,然后在关闭特效展示界面的时候再弹出奖品展示界面。那么问题来了,我该如何实现这个功能呢?对特效展示界面添加点击事件,点击它就跳转奖品展示?不合适吧,那是一个通用的界面,一般不推荐为某一个特殊的引用增加事件,因为你要把之前引用到这个界面的地方都设置该触摸事件不被响应,而且这还会涉及一些层级的问题,所以是不合适的。
所以最合适的结果就是,先声明一个事件,在特效展示界面中,关闭时响应的结束清理的函数中触发这个事件。然后奖品展示界面的构造函数中监听这个事件,如果监听到了则展示,这样就实现了需求,也是项目组开发中的观察者模式。其实观察者模式也适用于服务端和客户端上行下发协议的过程中。以后我们慢慢介绍。