Ограничение графической анимации BGI

Я делаю игру как проект с использованием 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;
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …