单挑真八蛇需要的式神:这一段程序如何实现动画的?

来源:百度文库 编辑:高校问答 时间:2024/03/28 18:42:58
#include<graphics.h>

int main()
{
int i, gdriver, gmode, size;
void *buf;
gdriver=DETECT;
initgraph(&gdriver, &gmode, "");
setbkcolor(BLUE);
cleardevice();
setcolor(LIGHTRED);
setlinestyle(0,0,1);
setfillstyle(1, 10);
circle(100, 200, 30);
floodfill(100, 200, 12);
size=imagesize(69, 169, 131, 231);
buf=malloc(size);
getimage(69, 169, 131, 231,buf);
putimage(500, 269, buf, COPY_PUT);
for(i=0; i<185; i++){
putimage(70+i, 170, buf, COPY_PUT);
putimage(500-i, 170, buf, COPY_PUT);
}
for(i=0;i<185; i++){
putimage(255-i, 170, buf, COPY_PUT);
putimage(315+i, 170, buf, COPY_PUT);
}
getch();
closegraph();
}

在putimage函数后,屏幕上原来的图象为什么会消失?从而实现了动画,而不是许多个图象的叠加?

这些图像其实相当于在一张纸上放了另一张纸一样,是分层放置的,每张纸都有一个编号,比如说你做了一个只能放3张纸的盒子,那么第一张后面是第二张,第二张后面是第三张,这时候你又拿来了第四张,放进去后,就占用了一张纸的位置,而原来的3张纸有一张就不在盒子里了,你就看不到了