0

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();
    }

现在,它实际上看起来像是在行走。但我仍然不知道如何解决屏幕闪烁问题。

4

0 回答 0