Си работаспосность программы

Кирилл Жмуров

Запустите программу нажмите в меню 2, тело должно вдигаться при нажатии f1 f2 f3 f4, но выходит что надо нажать сначало f а потом любую клавишу что бы оно сдивинулось, что не так не могу разобраться, может кто нийдет ошибку?
Вот код программы:

include <graphics.h> // подключение библиотек

void far setcolor(int x, int y, int c)//рисуем фигуру
{
setcolor(c);
line(x + 40, y + 30, x + 10, y + 50);
line(x + 40, y + 30, x + 70, y + 50);
line(x + 10, y + 50, x + 70, y + 50);
line(x + 10, y + 50, x + 10, y + 100);
line(x + 70, y + 50, x + 70, y + 100);
line(x + 10, y + 100, x + 70, y + 100);
line(x + 25, y + 60, x + 55, y + 60);
line(x + 25, y + 90, x + 55, y + 90);
line(x + 25, y + 60, x + 25, y + 90);
line(x + 55, y + 60, x + 55, y + 90);
line(x + 40, y + 60, x + 40, y + 90);
line(x + 40, y + 75, x + 55, y + 75);
}
int main() {//вывод меню
char ch=0;
int x, y, h, d = 0;
int a;
int px = 0, py = 0, ;

x = 0;
y = 0;

initwindow(400, 700);
rectangle(30,30,250,105);
outtextxy(35,35, "1.Svabodnae dvijenie");
line(30,55,250,55);
outtextxy(35,60, "2.Klaviatyra dvijenie");
line(30,80,250,80);
outtextxy(35,85, "3.vixad");
ch=getch();
switch (ch) {
case ('1'):
{cleardevice();

    while (1) { 
// самостоятельное движение рисунка
    while (px + 100 < 400) {
          if (GetAsyncKeyState(VK_ESCAPE))
        {closegraph();
            main();}
                setcolor(px, py, 15);
                delay(10);
                setcolor(px, py, 0);
                px++;
                py++;
            }
            while (py > 0) {

                  if (GetAsyncKeyState(VK_ESCAPE))
        {   closegraph();
            main();}
                setcolor(px, py, 15);
                delay(10);
                setcolor(px, py, 0);
                py--;
            }
            while (px > 0) {
                  if (GetAsyncKeyState(VK_ESCAPE))
        {closegraph();
            main();}
                setcolor(px, py, 15);
                delay(10);
                setcolor(px, py, 0);
                px--;
                py++;
            }
            while (py > 0) {
                  if (GetAsyncKeyState(VK_ESCAPE))
        {   closegraph();
            main();}
                setcolor(px, py, 15);
                delay(10);
                setcolor(px, py, 0);
                py--;
            }   
        }
            break;}

case ('2'):{
       cleardevice();
        while(1){
if (GetAsyncKeyState(VK_ESCAPE))
        {closegraph();
              main();
              }
            setcolor(px, py, 15);
        delay(10);
        setcolor(px, py, 15);
        h = getch();


        setcolor(px, py, 0);
        switch (h) {
        case 59: 
            if (px + 85<400)
                px=px+5;
            break;
        case 60: 
            if (px>0)
                px=px-5;
            break;
        case 61: 
            if (py + 85<400)
                py=py+5;
            break;
        case 62:
            if (py>0)
                py=py-5;
            break;
    }}

}
case ('3')://выход из прораммы
{ cleardevice();
exit(1);
return 0;
break;}
}
}

Кирилл Жмуров 9 месяцев назадСпасибо 1
1 чел.