Я делаю игру как проект с использованием BGI Graphics Library.
Когда я использую функцию readimagefile();
чтобы показать изображения в окне, я написал три из них и загрузил три различных изображения (.gif) в цикле, чтобы показать анимированное изображение в окне. Также есть фоновое изображение, которое я загрузил.
Проблема в том, что когда всплывают изображения, предыдущие остаются, а следующее изображение накладывается поверх предыдущего изображения.
Мне нужно очистить исходное изображение.
Я старался cleardevice();
а также clearviewpoint();
но они продолжают очищать весь фон.
Есть ли способ очистить предыдущее изображение без очистки фона?
Код:
void copter()
{
readimagefile("copter.gif", 250, 200, 400, 330);
delay(100);
readimagefile("copter2.gif", 250, 200, 400, 330);
delay(100);
readimagefile("copter3.gif", 250, 200, 400, 330);
delay(100);
}
void BG()
{readimagefile("MAINMENU.jpg", 0, 0, 700, 500);
readimagefile("LOGO.gif", 80, 100, 550, 200);
readimagefile("START.gif", 265, 350, 380, 380);
readimagefile("QUIT.gif", 280, 390, 363, 420);}main()
{
initwindow(650, 500, "CHOPPER");
int x,y;
char k;
///////////////////////////////////////////////////////////////PlaySound("NES.WAV", NULL, SND_LOOP | SND_ASYNC);BG();
while(1)
{
copter();/////////////////////////////////////
if (kbhit())
{
k = getch();
while (k == 27)
{
closegraph();
return 0;
}
}
////////////////////////////////getmouseclick(WM_LBUTTONDOWN, x, y);if (x>280 && x<370, y>350 && y<380)
{
//Start();
//break;
}
if (x>280 && x<370, y>390 && y<420) //280, 390, 363, 420
{
closegraph();
return 0;
}
}//getch();
//closegraph();
return 0;
}
Задача ещё не решена.
Других решений пока нет …