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

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

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

1.表示した絵の消し方
ゲームでは画面上を絵が移動します。しかし、実際には「ある位置で絵を描き、その後描いた絵を消し別の位置に絵を描く」と言った動作の繰り返しになります。 Study Cで絵を消すには、gl_fillrect()関数を使用します。この関数はある矩形領域を指定した色で塗りつぶす関数です。 (200, 100)の位置から横16、縦16ドット分の矩形領域を黒で塗りつぶす場合は下記のようになります。

                                                                               
	gl_fillrect(200, 100, 200+16, 100+16, RGB(0, 0, 0));

色の指定には、RGB()というマクロを使用します。黒の場合はRGB(0,0,0)、白の時はRGB(255,255,255)と言うように0から255の間で赤(R)、緑(G)、青(B)の各成分を配合します。 いろいろなRGB値を指定して試してみてください。

                                                                               
#include <graph.h>

main()
{
	gl_openwin(-1, -1, 640, 480, 0);

	gl_fillrect(200, 100, 200+16, 100+16, RGB(255, 255, 0));
	gl_refresh();
}

この例では矩形領域を黄色で塗りつぶします。






2.絵の移動
前回作成したボールの絵のビットマップファイルを使用して、表示位置をずらしながら描画と消去を行ってみます。
ボールのビットマップファイルをダウンロードしていない方は、この絵の部分でを右ボタンメニューの「名前を付けて画像を保存」でダウンロードしてください。

                                                                               
#include <graph.h>

main()
{
	HBITMAP	hbmp_ball;

	hbmp_ball = gl_loadbitmap("ball.bmp");
	if(hbmp_ball == NULL){
		printf("ビットマップファイルが見つかりません.\n");
		exit(0);
	}
	gl_openwin(-1, -1, 640, 480, 0);

	//1個目の描画
	gl_drawbitmap(hbmp_ball, 320, 240, 16, 16, 0, 0);
	gl_refresh();
	getchar();

	//1個目を消去して2個目を描画
	gl_fillrect(320, 240, 320+16, 240+16, RGB(0, 0, 0));
	gl_drawbitmap(hbmp_ball, 300, 220, 16, 16, 0, 0);
	gl_refresh();
	getchar();

	//2個目を消去して3個目を描画
	gl_fillrect(300, 220, 300+16, 220+16, RGB(0, 0, 0));
	gl_drawbitmap(hbmp_ball, 280, 200, 16, 16, 0, 0);
	gl_refresh();
	getchar();

	//3個目を消去して4個目を描画
	gl_fillrect(280, 200, 280+16, 200+16, RGB(0, 0, 0));
	gl_drawbitmap(hbmp_ball, 260, 180, 16, 16, 0, 0);
	gl_refresh();
}

このプログラムを実行してEnterキーを3回タイミング良く押してください。 なんとなくボールが動いているように見えると思います。



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