- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 SFML 2.3
来控制程序中的图形。我需要一个类才能访问窗口,即使该类不是最初创建窗口的类(没有所有权)也可以绘制它。例如。 Battle
类需要能够绘制战斗场景并在那里操作角色,但是 World
类需要在 Battle
之前和之后的窗口来显示玩家在主游戏中的 Action 。
应该如何处理窗口对象?我最初的想法是拥有一个将窗口作为静态成员的 GameMaster
类。但是我认为最好检查一下通常的共识是什么,而不是错误地使用这种方法。
我意识到我总是可以将对窗口的引用传递给需要它的每个类,但这会使所有需要操作窗口的类的构造函数变得非常臃肿。
最佳答案
恐怕您必须在使用 Singleton 之间做出选择。 (GameMaster
) 允许访问主窗口,或使用您的依赖类对象传递对它的引用。
我个人更喜欢后者(我不会考虑将另一个构造函数参数添加到几个类中作为 bloat),因为类设计的整体灵 active 会比使用 em>单例。
您可能会考虑,将您的World
类汇编代码外包给一个单独的Factory
class。 .这个可以将必要的主窗口对象作为成员保存,并将其传递给所有已创建的 World
、Battle
等组装 World< 所需的实例
,分别发起游戏任务。
关于c++ - 将绘图窗口 "deeper"的控制传递给程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30218822/
大家好,我知道这段代码的作用: 1.]我的第一个问题 x = 4 y = x 但是这个呢。为什么即使在这种情况下也使用相同的地址? x = 4 y = 4 id(x) 12345678 id(y) 1
我正在使用 SFML 2.3 来控制程序中的图形。我需要一个类才能访问窗口,即使该类不是最初创建窗口的类(没有所有权)也可以绘制它。例如。 Battle 类需要能够绘制战斗场景并在那里操作角色,但是
我不知道该如何描述?我认为如果你看看我制作的 jsfiddle 会更好.. 如您所见,某些 TR 元素上有悬停,如果 TD 已经有另一个 bgcoler,它必须更改为替代 bgcolor.. 它在前
我的意思是,虽然你可以这样做: $foo = "Yo dawg I herd you like $bar->baz"; 这个: $foo = "Yo dawg I herd you like $bar
首先。对不起我的标题,我已经考虑了十多分钟我要命名我的问题。但是我什么也没得到.. 在我的应用程序中,我有三个基本属于彼此的组件。 我有: Doors.js DoorsItem.js DoorsDet
我第一次尝试响应式编程,使用 bacon.js ,并遇到了一个让我很烦的奇怪的互动。我想出了这个事件链的一个工作版本,但是 hackish 的额外流操作使它从其余代码中脱颖而出——如您所见。 我发现
在 PhpStorm 中,如果我创建了一个对象,那么该对象的所有自动完成功能都可以正常工作: $object = new MyClass(); $object->getNa... 将自动完成 $obj
假设我想高效地从 xml 文档中选择所有 field 节点。该文档可能如下所示:
在 Angular2 中有没有办法为异步代码获得更好的调用堆栈?我一直认为跟踪 setTimeout()、发出的事件、Promises 等的执行上下文是 Zone 的优势之一? 我构建了一个 plun
我的模型相关如下: Post BELONGS_TO Parent Parent HAS_MANY ParentAdmin 现在,如果满足帖子的属性值,我希望找到所有帖子的所有父级管理员。等效的 sql
几年前,我和我的兄弟为 Mandelbrot 集编写了 Java 代码。昨天我想用它找到一些很酷的变焦,但当我进行更强烈的变焦时,我开始注意到一个问题(变焦值约为 1E14)。像素似乎被组合在一起,有
我已经在 StackOverflow 上阅读了许多 Tic Tac Toe 主题。我发现维基百科上的策略适合我的演示项目: A player can play perfect tic-tac-toe
这个问题在这里已经有了答案: Convert a JavaScript string in dot notation into an object reference (34 个答案) 关闭 5 年
除了开发人员工具网络面板提供的功能之外,我如何更深入地了解网络浏览器的网络级别发生了什么?例如,我现在正尝试在 Firefox (18.0.1) 中调试页面上的一个问题,在页面加载完成后加载“微调器”
我是一名优秀的程序员,十分优秀!