现在对于我的游戏,我有一个场景管理器,它运行一个场景。它所做的是向场景发送事件消息,如渲染、输入等。这使得我可以使场景不知道场景管理器。现在,我希望场景能够向场景管理器发送一条消息,说明它希望切换到哪个场景(纯文本)。我如何在不让场景感知场景管理器类的情况下做到这一点?
谢谢
发布于 2011-06-07 10:28:12
一种方法是让场景管理器传入的不是对其自身的引用,而是对一个较小对象的引用,该对象仅支持传递特定消息所需的少量方法。
这可以是场景管理器实现的抽象类(也称为“接口”),也可以是单独的对象。
如果您使用引用计数或智能指针,请考虑将其设置为弱反向引用...
发布于 2011-06-07 10:27:21
以Observer Pattern为例:您的场景将为观察者提供一个接口,以通知其感兴趣的事件。场景管理器可以是对“请求场景改变”事件感兴趣的一个这样的观察者。然后,当场景准备好进行交换时,它将向所有观察者发送通知。
https://stackoverflow.com/questions/6260049
复制相似问题