#include <graph.h>
main()
{
HBITMAP hbmp_ball;
int b_xx, b_yy, bold_xx, bold_yy, rc;
long xx, yy;
unsigned long
tick;
gl_openwin(-1, -1, 640, 480, 0);
hbmp_ball = gl_loadbitmap("ball.bmp");
if(hbmp_ball == NULL){
printf("ビットマップファイルが見つかりません.\n");
exit(0);
}
bold_xx = bold_yy = -1;
b_xx = 320;
b_yy = 240;
tick = GetTickCount();
for(;;){
if(GetTickCount() >= tick && GetTickCount() < tick + 50)
continue;
tick = GetTickCount();
if(gl_getkeystate(VK_ESCAPE) < 0)
break;
//マウスカーソルの位置を取得する。
if(gl_getmousepos(&xx, &yy)){
//long型へのポインタなので一旦別の変数xx,yyで取得し
//b_xx,b_yyへ代入する。
b_xx = xx;
b_yy = yy;
//ボールがウィンドウからはみ出さないためのチェック
if(b_xx < 0)
b_xx = 0;
if(b_xx > 640 - 16)
b_xx = 640 - 16;
if(b_yy < 0)
b_yy = 0;
if(b_yy > 480 - 16)
b_yy = 480 - 16;
}
if(bold_xx != b_xx || bold_yy != b_yy){
if(bold_xx != -1 && bold_yy != -1){
gl_fillrect(bold_xx, bold_yy, bold_xx + 16, bold_yy + 16, RGB(0, 0, 0));
}
bold_xx = b_xx;
bold_yy = b_yy;
gl_drawbitmap(hbmp_ball, b_xx, b_yy, 16, 16, 0, 0);
}
gl_refresh();
}
}
|