graphics
我试图在图书馆中制作一个火柴人行走的简单动画C
。
我的代码:
#include<stdio.h>
#include<graphics.h>
void swap(int *x, int *y){
int temp=0;
temp=*x;
*x=*y;
*y=temp;
}
int main(){
int gd=DETECT,gm=0;
int i=0;
int a=30+i;
int b=50+i;
initgraph(&gd,&gm,"C:\\TURBOC3\\BGI");
while(i!=600){
swap(&a,&b);
circle(40+i,40,30);
line(40+i,70,a+i,90);
line(40+i,70,b+i,90);
i++;
delay(10);
cleardevice();
}
getch();
closegraph();
return 0;
}
问题是,在播放动画时,显示器屏幕一直在闪烁,而且腿的位置没有根据swap(&b,&c)
功能交换。我在哪里错了?有人可以帮帮我吗?
修复:所以,我意识到,没有任何意义的swap()
功能,交换线将使它们的对齐再次相同(结果看起来腿没有移动),所以我决定调整这里有一些东西:
while(i!=600){
if(i%2==0){
circle(40+i,40,30);
line(40+i,70,(a+b)/2+i,90);
line(40+i,70,(b+a)/2+i,90);
}else{
circle(40+i,40,30);
line(40+i,70,a+i,90);
line(40+i,70,b+i,90);
}
i++;
delay(10);
cleardevice();
}
现在,它实际上看起来像是在行走。但我仍然不知道如何解决屏幕闪烁问题。