ページ 1 / 1
グラフィックハンドルの扱いについて
Posted: 2013年6月13日(木) 23:16
by 西条
LoadGraphで画像ハンドルを入手した場合、そのハンドルをコピーすると負担?が増えてしまうでしょうか。
コード:
int a, b;
a=LoadGraph("gazou.png");
b = a;
という風に書くと、その分処理というか負担というか、そういうものが増えるのでしょうか。
例えばシューティングゲームなど、同じ画像の弾幕が画面中に散らばると思いますが
このときそれぞれの弾一つずつが上記のように画像ハンドルを持っても良いのでしょうか。
負担が大きくなるということならば、弾はそれぞれ画像の番号だけ保持しておいて
あとでまとめて描画するためのクラスを作ろうと考えています。
Re: グラフィックハンドルの扱いについて
Posted: 2013年6月13日(木) 23:23
by h2so5
ハンドルはただの番号なのでコピーしても画像データ自体はコピーされません。
投稿したコードは、画像の番号だけ保持している状態です。
Re: グラフィックハンドルの扱いについて
Posted: 2013年6月13日(木) 23:35
by 超絶右留斗羅天才プログラマー
例えばですが、弾一つ一つで
LoadGraph("gazou.png");
をすると画像をLoadGraphをした回数分だけ読み込み、メモリに同じ画像のデータが乗るので、大変なことになります。
コード:
int a = LoadGraph("gazou.png");
として、このaの値を
コード:
for(int i = 0; i < 20; i++)
bullet[i].handle = a;
のように弾一つ一つに設定するのは、大丈夫です。
Re: グラフィックハンドルの扱いについて
Posted: 2013年6月13日(木) 23:46
by 西条
h2so5さん、 超絶右留斗羅天才プログラマーさん、回答ありがとうございます。
現在のコードはロードを繰り返してはおらず、ちょうど 超絶右留斗羅天才プログラマーさんのように
ハンドルの番号のみをコピーして回っている状態です。
少しだけコードに自信が持てました。
どうもありがとうございました。
Re: グラフィックハンドルの扱いについて
Posted: 2013年6月14日(金) 00:00
by softya(ソフト屋)
解決したようですが問題が有るとしたら、ハンドルをコピーしまくった場合にハンドルを破棄した時の扱いが複雑になる可能性がある所でしょうか。
一度に全部破棄するのなら問題ありません。