画像等のリソース管理をする先ほどプレイヤー画像を表示するために画像のロードをプレイヤークラスのコンストラクタで行いました。画像をクラスのインスタンスごとにロードしていると非効率な場面があります。弾等は何万個とオブジェクトを生成することになりますが、生成するごとにリソースをロードするわけにいきません。2つしかないオブジェクトだとしても、同じ画像を2か所でロードするのは非効率ですし、どこか1か所でも解放漏れがあるとメモリリークしてしまいます。従って画像等のリソース管理は1か所で行うようにします。ロードした画像を覚えて置き、同じ画像を2枚ロードを重ねてメモリリークしたり解放漏れによるリークが無いように設計します。画像のリソース管理をするImageクラスの実装をみてみましょう。ret;}ここで着目すべきはmyLoadGraphです。LoadGraphというDXライブラリの関数をラップしたものです。LoadGraphされてハンドルが返ってくるとき、そのハンドルをメンバ変数のリストに追加してから返します。画像のロードは全てmyLoadGraphを経由することで、全ての画像リソースへのハンドルを持つことが出来、全ての画像解放作業が楽にできるようになります。ここのクラスにロードと解放処理があると、どこかにメモリリークが目を凝らしてみる必要がありますが、この仕組みならメモリリークのしようがありません。load()関数が空っぽなのは、LooperのコンストラクタでImageのコンストラクタを起動したいためにあるからです。Imageはシングルトンクラスなので、初めてアクセスした時にコンストラクタが走ります。実際のロード処理はコンストラクタでやっているので、loadが呼ばれた時にコンストラクタが呼ばれて画像がロードされます。このload処理をシーンごとにやれるように変更します。使用しているPlayerクラスと、loadを呼んでいるLooperクラスを見てみましょう。}}リソースにはImageのほかにSE(効果音)とBGM(音楽)があります。似たようでありまた別の作り方をするので別の章で説明します。