Я пытался сделать простую анимацию ходячего человечка, в библиотеке 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();
}
Теперь, похоже, фигура идет. Но я все еще не знаю, как решить проблему мерцания экрана.