告诉场景管理员你准备切换场景了吗?

时间:2011-06-07 02:22:09

标签: c++ design-patterns observer-pattern

现在我的游戏,我有一个场景管理器,它运行一个场景。它的作用是将事件消息发送到场景,例如渲染,输入等。这使我能够让场景不知道场景管理器。我现在希望场景能够向场景管理器发送一条消息,说明它要切换到哪个场景(用纯文本格式)。如果不让场景知道场景管理器类,我怎么能这样做呢?

由于

2 个答案:

答案 0 :(得分:3)

考虑Observer Pattern:您的场景将为观察者提供有趣事件通知的界面。场景管理者可以是对“请求场景改变”事件感兴趣的观察者之一。然后,场景将在准备好进行交换时向所有观察者发送通知。

答案 1 :(得分:1)

一种方法是让场景管理器传入NOT不是对自身的引用,而是引用一个较小的对象,它只支持特定消息传递所需的少量方法。

这可以是场景管理器实现的抽象类(也称为“接口”),也可以是单独的对象。

如果您正在使用引用计数或智能指针,请考虑将其作为弱反向引用...