グラフィックハンドルの扱いについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
西条

グラフィックハンドルの扱いについて

#1

投稿記事 by 西条 » 11年前

LoadGraphで画像ハンドルを入手した場合、そのハンドルをコピーすると負担?が増えてしまうでしょうか。

コード:

int a, b;
a=LoadGraph("gazou.png");
b = a;
という風に書くと、その分処理というか負担というか、そういうものが増えるのでしょうか。
例えばシューティングゲームなど、同じ画像の弾幕が画面中に散らばると思いますが
このときそれぞれの弾一つずつが上記のように画像ハンドルを持っても良いのでしょうか。

負担が大きくなるということならば、弾はそれぞれ画像の番号だけ保持しておいて
あとでまとめて描画するためのクラスを作ろうと考えています。

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: グラフィックハンドルの扱いについて

#2

投稿記事 by h2so5 » 11年前

ハンドルはただの番号なのでコピーしても画像データ自体はコピーされません。
投稿したコードは、画像の番号だけ保持している状態です。

超絶右留斗羅天才プログラマー
記事: 44
登録日時: 11年前

Re: グラフィックハンドルの扱いについて

#3

投稿記事 by 超絶右留斗羅天才プログラマー » 11年前

例えばですが、弾一つ一つで
LoadGraph("gazou.png");
をすると画像をLoadGraphをした回数分だけ読み込み、メモリに同じ画像のデータが乗るので、大変なことになります。

コード:

int a = LoadGraph("gazou.png");
として、このaの値を

コード:

for(int i = 0; i < 20; i++)
    bullet[i].handle = a;
のように弾一つ一つに設定するのは、大丈夫です。
ただの超絶右留斗羅天才プログラマーです。同人ゲーム制作進捗度:7%

西条

Re: グラフィックハンドルの扱いについて

#4

投稿記事 by 西条 » 11年前

h2so5さん、 超絶右留斗羅天才プログラマーさん、回答ありがとうございます。
現在のコードはロードを繰り返してはおらず、ちょうど 超絶右留斗羅天才プログラマーさんのように
ハンドルの番号のみをコピーして回っている状態です。
少しだけコードに自信が持てました。
どうもありがとうございました。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: グラフィックハンドルの扱いについて

#5

投稿記事 by softya(ソフト屋) » 11年前

解決したようですが問題が有るとしたら、ハンドルをコピーしまくった場合にハンドルを破棄した時の扱いが複雑になる可能性がある所でしょうか。
一度に全部破棄するのなら問題ありません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

“C言語何でも質問掲示板” へ戻る