求问,进入play后只对ESC有反应,其他按键不动了
程序代码:这是一个分函数,调用的函数也贴出来了,但是进来以后按键没反应,第一次按ESC可以退出来,如果第一次不是按ESC的话,再按其他键都没有反应了,求大神解答。。。拜托了
void play()
{
int x,y,x1,y1,i,j;
int e=20,PreKey_count=0,Hit_Count=0;
char c,key;
setbkcolor(BKColor);
while(key!=ESC)
{
randomize();
x=50+random(500);
c=Generatechar();
for(y=10;y<480;y++)
{
AutoDraw_down(x,y,c,speed);
if(kbhit())
{
key=getch();
if(key==ESC)
return;
else
{
if(key==c)
{
x1=x;
for(y1=480;y1>=y;y1--)
AutoDraw_up(x1,y1,key,speed);
Hit_Count++;
setcolor(RED);
for(i=10;i<=30;i++)
{
circle(x1,y1,i);
Sleep(1000);
}
}
else
{
x1=x+e;
for(y1=480;y1>=10;y1--)
AutoDraw_up(x1,y1,key,speed);
}
PreKey_count++;
}
break;
}
}
cleardevice();
}
closegraph();
printf("PreKey:%d,Hit:%d\n",PreKey_count,Hit_Count);
getch();
}
int speed=100;
void Drawchar(int x,int y,char c)
{
char ch[2];
ch[1]='\0';
setfont(15,0,"宋体");
outtextxy(x,y,ch);
}
void AutoDraw_down(int x,int y,char c,int n)
{
setcolor(BKColor);
Drawchar(x,y,c);
setcolor(CColor);
Drawchar(x,y+1,c);
Sleep(n);
}void AutoDraw_up(int x,int y,char c,int n)
{
setcolor(BKColor);
Drawchar(x,y,c);
setcolor(CColor);
Drawchar(x,y-1,c);
Sleep(n);
}
char Generatechar()
{
int flag;
char c;
randomize();
flag=random(3);
switch(flag)
{
case 0:c='a'+random(26);
break;
case 1:c='A'+random(26);
break;
case 2:c='0'+random(10);
break;
default:break;
}
return c;
}






