#include <graph.h>
main()
{
HBITMAP hbmp_base, hbmp_square, hbmp_squaremask;
int b_xx, b_yy, bold_xx, bold_yy;
unsigned long
tick;
//hbmp_base = gl_loadbitmap("c:\\windows\\雲.bmp");
hbmp_base = gl_loadbitmap("c:\\windows\\シャボン.bmp");
hbmp_square = gl_loadbitmap("square.bmp");
hbmp_squaremask = gl_loadbitmap("square_bw.bmp");
if(hbmp_base == NULL || hbmp_square == NULL || hbmp_squaremask == NULL){
printf("ビットマップファイルが見つかりません.\n");
exit(0);
}
gl_openwin(-1, -1, 256, 256, 0);
gl_drawbitmap(hbmp_base, 0, 0, 256, 256, 0, 0);
bold_xx = bold_yy = -1;
b_xx = 128-32;
b_yy = 128-32;
tick = GetTickCount();
for(;;){
if(GetTickCount() >= tick && GetTickCount() < tick + 50)
continue;
tick = GetTickCount();
if(gl_getkeystate(VK_ESCAPE) < 0)
break;
if(gl_getkeystate(VK_LEFT) < 0){
b_xx -= 10;
if(b_xx < 0)
b_xx = 0;
}
if(gl_getkeystate(VK_RIGHT) < 0){
b_xx += 10;
if(b_xx > 256 - 64)
b_xx = 256 - 64;
}
if(gl_getkeystate(VK_UP) < 0){
b_yy -= 10;
if(b_yy < 0)
b_yy = 0;
}
if(gl_getkeystate(VK_DOWN) < 0){
b_yy += 10;
if(b_yy > 256 - 64)
b_yy = 256 - 64;
}
if(bold_xx != b_xx || bold_yy != b_yy){
if(bold_xx != -1 && bold_yy != -1){
gl_fillrect(bold_xx, bold_yy, bold_xx + 64, bold_yy + 64, RGB(0, 0, 0));
}
bold_xx = b_xx;
bold_yy = b_yy;
gl_maskdrawbitmap(hbmp_square, hbmp_squaremask, b_xx, b_yy, 64, 64, 0, 0);
}
gl_refresh();
}
}
|