opengl、direct3d、sdl、または任意のグラフィック API (一般的にはゲーム) を使用してあらゆる種類のアプリケーションをプログラミングしているとき、描画、画像の読み込み、ウィンドウの初期化などに必要なすべてを備えた Graphics という名前のクラスを作成する習慣があります。その中に。このクラスのインスタンスは、別のクラス (プログラム、ゲーム、またはそれを使用するもののメイン クラス) 内にあります。
年月が経つにつれて、私はこれを使用するためにさまざまなアプローチを試みましたが、これらのいくつかが良いと思うかどうか、またはすべてが役に立たないがらくたであり、別の方法で行う必要があるかどうかを知りたい.
1 - プログラム クラス内に Graphics のインスタンスを持ち、プログラム クラス内に関数を持ち、オブジェクト (プレーヤーなどのゲーム オブジェクト) を反復処理し、Graphics メソッドを呼び出して、それに応じてすべてを描画します。
2 - グラフィックスへのポインターをすべてのオブジェクトに渡して、それぞれが Draw 関数を持ち、このポインターを使用して適切なグラフィックス関数自体を呼び出すことができるようにします。
3 - グラフィックス内のすべてを静的にし、グラフィックスのインスタンスを作成する必要をなくします。次に、どこからでもすべてのグラフィック関数を呼び出すことができます (トピック 2 と同様に、各オブジェクトに対して Draw 関数を使用するだけです)。
ありがとうございました。
編集: そして、iostream が cout で行うことと同様のことを行うとしたら、たとえば、「extern Graphics x;」でヘッダーを作成し、cpp ファイルで x を宣言し、この x からすべてを呼び出します。これはひどすぎますか?もしそうなら、なぜですか?