告诉场景经理你准备好切换场景了吗?

发布于 2024-11-14 14:04:25 字数 159 浏览 3 评论 0原文

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

谢谢

Right now for my game, I have a scene manager and it runs a scene. What it does is send event messages to the scene such as render, input, etc. This has allowed me to make the scene unaware of the scene manager. I would now like the scene to be able to send the scene manager a message saying which scene it would like to switch to (in plain text). How could I do this without making the scene aware of the scene manager class?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

迷雾森÷林ヴ 2024-11-21 14:04:25

考虑观察者模式:您的场景将为观察者提供一个界面,以通知他们有趣的事件。场景管理器可以是对“请求场景改变”事件感兴趣的观察者之一。当场景准备好进行交换时,它会向所有观察者发送通知。

Consider the Observer Pattern: your scene will provide an interface for observers to be notified of interesting events. The scene manager could be one such observer that is interested in "request scene change" events. The scene would then send a notification to all observers when it is ready to do the swap.

少跟Wǒ拽 2024-11-21 14:04:25

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

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

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

One way is to have the scene manager pass in NOT a reference to itself, but a reference to a smaller object that only supports the small number of methods needed for the particular messages to pass.

This could be an abstract class (aka "interface") which the scene manager implements, or a separate object.

And if you're using reference counting or smart pointers, consider making it a weak back-reference...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文