当我使用 opengl、direct3d、sdl 或任何图形 api(通常是游戏)编写任何类型的应用程序时,我习惯于创建一个名为 Graphics 的类,该类具有绘制、加载图像、初始化窗口等所需的一切。在里面。在另一个类中存在这个类的一个实例,即程序、游戏或任何将使用它的主类。
随着岁月的流逝,我尝试了很多不同的方法来使用它,我想知道你们是否认为其中一些是好的,或者如果一切都只是无用的废话,我应该用另一种方式来做。
1 - 在程序类中有一个 Graphics 的实例,并在程序类中有一个函数来迭代对象(游戏对象,例如玩家)并调用 Graphics 方法以相应地绘制所有内容。
2 - 将指向 Graphics 的指针传递给每个对象,这样每个对象都可以有一个 Draw 函数,并通过这个指针自己调用适当的 Graphics 函数。
3 - 让 Graphics 中的所有内容都是静态的,并且无需创建图形实例。然后你可以从任何地方调用每个图形函数。(你只需要一个 Draw 函数到每个对象,就像主题 2 一样)
谢谢你。
编辑:如果我做一些类似于 iostream 对 cout 所做的事情,比如,只需使用“extern Graphics x;”创建一个标头,在 cpp 文件中声明 x,然后从这个 x 中调用所有内容。这太糟糕了吗?如果是,为什么?