C言語ゲームプログラミング 第2回講座
 

Study C Ver2販売開始のお知らせ

 C言語の勉強や教育用に最適です。
 2004/8/23よりStudy C Ver2の販売を開始しました。
 Study C Ver2の新しい機能については
 こちらをご参照ください。

1.ビットマップファイルのロード
Study Cでビットマップファイルを表示するには、ファイルをロードして読み込む必要があります。 読込にはgl_loadbitmap()関数を使用します。gl_loadbitmap()関数は、読み込んだビットマップファイルを識別するための値(ハンドル)を返します。 その値がNULL(0)の場合は、読み込みに失敗した場合です。 gl_loadbitmap()関数の型はHBITMAPという特殊な型です。これはインクルードファイルないでtypedefによって定義されています。 typedefやHBITMAP等については、詳しく知っている必要は当分ないのでint、char型などの一種のように考えておいてください。 gl_loadbitmap()関数の使用例は次のようになります。

                                                                               
	HBITMAP	hbmp;

	//ビットマップファイルの読み込み
	hbmp = gl_loadbitmap("c:\\windows\\赤レンガ.bmp");
	if(hbmp == NULL){
		printf("ビットマップファイルが見つかりません.\n");
		exit(0);
	}

gl_loadbitmap()関数には、前回確認したWindowsディレクトリ下に用意されている"赤レンガ.bmp"ファイルを使用します。 文字列定数として記述するので'\'文字が2個必要なので注意してください(文字列定数中で、\を表現するには\\と記述します)。 gl_loadbitmap()関数の返す値は、HBITMAP型として定義した変数に格納します。 この値がNULL(0)の場合は、ロードに失敗した場合です(その場合はエラーメッセージなどを表示してします)。 ファイルの指定に誤りがないか確認してください。




2.ビットマップの描画
ロードしたビットマップの描画には、gl_drawbitmap()関数を使用します。 gl_loadbitmap()関数の返した値(ハンドル)を指定して、ウィンドウ上のどの位置にどの大きさで表示するか指定します。 ビットマップを表示するプログラムは次のようになります。
                                                                               
#include <graph.h>

main()
{
	HBITMAP	hbmp;

	//ビットマップファイルの読み込み
	hbmp = gl_loadbitmap("c:\\windows\\赤レンガ.bmp");
	if(hbmp == NULL){
		printf("ビットマップファイルが見つかりません.\n");
		exit(0);
	}
	//ウィンドウのオープン
	gl_openwin(-1, -1, 640, 480, 0);

	//ビットマップファイルの描画
	gl_drawbitmap(hbmp, 0, 0, 54, 96, 0, 0);
	//画面への反映
	gl_refresh();
}

gl_openwin()関数のモード指定が1の場合はこれでウィンドウ内に絵が表示されますが、モード指定が0の場合はgl_refresh()関数を実行した時点でウィンドウに表示されます。 実際には、Study Cがプログラム終了時やキー入力待ちの直前にgl_refresh()関数を呼び出しているのでモードによる違いはあまりわからないとと思います。
gl_drawbitmap()関数に与えている値の0, 0, 54, 96, 0, 0は、ウィンドウ上の(0,0)の位置(左上に)、横54、縦96のサイズでビットマップファイルを表示するという意味です。 最後の0, 0はロードしたビットマップの左上の位置から描くという指定です(この指定を変えることによりロードしたビットマップの10,10の位置から描画するという指定もできるわけです)。

このプログラムを実行した結果は次のようになります。


お問い合わせ先 C言語ゲームプログラミングのトップページに戻る Copyright(C) 2003 潟Iーキッド