アクションゲームでは場面によって様々な種類の敵やアイテムが出現しますね
今回の質問は、その「敵」や「アイテム」の画像をいつメモリに入れるべきかという質問です
龍神録プログラミングの館の方では「ステージの初めに、そのステージで使用する画像を全て読み込む」
という方法が使われています
それに対し、現在、自分が行おうとしている方法は以下のようです
//------------------------------------------
敵1が出現
↓
敵1クラスのコンストラクタで敵1の画像をメモリに読み込む
敵1が消滅
↓
敵1クラスのデストラクタで敵1の画像をメモリから削除する
//------------------------------------------------
この方法の利点は
・ステージごとに出現する敵に使用する画像を初めに読ませる必要がないため、
ステージの作成が非常に楽であること(どの敵を使用するか、あらかじめ決める必要がない)
予想される欠点としては
・いちいち敵出現イベントごとに、画像を読み込むため、速度が遅そう
・同じ種類の敵が出るとき、同じ画像をメモリに格納してしまい、余分にメモリを使用する
などがあると思われます
一体、どういった設計方法をとるべきでしょうか
ご教授おねがいします
ちなみに現在のクラス設計は以下のようです
//画像を読み込み、描画を行うクラス class Graph{ protected: int Grhandle[32] //格納されるイメージハンドルを示す変数 public: load(char *FileName); //変数にグラフィックハンドルを保存する関数 del();//メモリの解放処理をする関数 draw();//描画 }; //敵、アイテムなどの抽象クラス //これを継承させて、様々な敵やアイテムを作成する class Object{ protected: Graph graph; public: Object(){graph.load("画像.bmp");}//コンストラクタ(ここで画像読み込み) ~Object(){graph.del();} run(); //敵の消滅判定とか移動とかの実行 };注:これはイメージであって実際のコードは違います