gpt4 book ai didi

c++ - 将绘图窗口 "deeper"的控制传递给程序?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:10:21 24 4
gpt4 key购买 nike

我正在使用 SFML 2.3 来控制程序中的图形。我需要一个类才能访问窗口,即使该类不是最初创建窗口的类(没有所有权)也可以绘制它。例如。 Battle 类需要能够绘制战斗场景并在那里操作角色,但是 World 类需要在 Battle 之前和之后的窗口来显示玩家在主游戏中的 Action 。

应该如何处理窗口对象?我最初的想法是拥有一个将窗口作为静态成员的 GameMaster 类。但是我认为最好检查一下通常的共识是什么,而不是错误地使用这种方法。

我意识到我总是可以将对窗口的引用传递给需要它的每个类,但这会使所有需要操作窗口的类的构造函数变得非常臃肿。

最佳答案

恐怕您必须在使用 Singleton 之间做出选择。 (GameMaster) 允许访问主窗口,或使用您的依赖类对象传递对它的引用。

我个人更喜欢后者(我不会考虑将另一个构造函数参数添加到几个类中作为 bloat),因为类设计的整体灵 active 会比使用 em>单例


您可能会考虑,将您的World 类汇编代码外包给一个单独的Factory class。 .这个可以将必要的主窗口对象作为成员保存,并将其传递给所有已创建的 WorldBattle 等组装 World< 所需的实例,分别发起游戏任务。

关于c++ - 将绘图窗口 "deeper"的控制传递给程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30218822/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com