画像の読み込みと表示

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

画像の読み込みと表示

#1

投稿記事 by catfish » 8年前

初心者ですが、タスクシステムを利用したシューティングゲームを作ろうとしています。
DXライブラリ、C言語(C++少し)で作成しています。Visual C++2010を使用。
使用関数外でグローバル変数としてHandle,Handle2に画像を読み込み、表示させたいです。
それぞれ、描画部分がある関数内で読み込みを行うとうまく表示されるのですが、この関数がループで回るものなので毎回画像を読み込み、消費メモリが鬼のようになります。以下は作成したコードの該当部分です。

コード:

int Handle = LoadGraph("画像/無題.png");
int Handle2 = LoadGraph("画像/弾00.png");
//タスクの処理関数(自機用)
void Ctrl_Mine(TASK* task) {
	// assertを使って構造体のサイズをチェックする
	assert(sizeof(WORK)<=WORK_SIZE);
	// 汎用のワークエリアへのポインタを、
	// 自機ワークエリア構造体へのポインタにキャストする
	WORK* work=(WORK*)task->Work;
	if( Key[ KEY_INPUT_RIGHT ] >= 1 && work->x <= 620) work->x +=4;
	if( Key[ KEY_INPUT_DOWN  ] >= 1 && work->y <= 460) work->y +=4;
	if( Key[ KEY_INPUT_LEFT  ] >= 1 && work->x >= 20 ) work->x -=4;
	if( Key[ KEY_INPUT_UP    ] >= 1 && work->y >= 20 ) work->y -=4;
	DrawRotaGraph(work->x, work->y, 1.0, 0.0, Handle, TRUE );//描画部分
}
//タスクの処理関数(その他)
void CA(TASK* task) {
	assert(sizeof(WORK)<=WORK_SIZE);
	WORK* work=(WORK*)task->Work;
	work->x += 0;
	work->y += 1;
	DrawRotaGraph(work->x, work->y, 1.0, 0.0, Handle2, TRUE );//描画部分
}

catfish

Re: 画像の読み込みと表示

#2

投稿記事 by catfish » 8年前

すみません、自己解決できました。。。

グローバル変数を先に宣言して、mainループでロードするとできました。

かば
記事: 7
登録日時: 8年前

Re: 画像の読み込みと表示

#3

投稿記事 by かば » 8年前

解決押しといてね。

閉鎖

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