c语言vs找不到getch,c语言前辈们,怎么用getch()巧妙代替kbhit()的功能?

c语言前辈们,怎么用getch()巧妙代替kbhit()的功能?0

02ae427d08e371d7e90d5b995e828d6d.pngsammigo2014.10.26浏览18次分享举报

这是在能TC上运行的小球动态碰撞的程序,调用了图形函数graphics.h。如何用getch()能达到和用kbhit()一样的效果?#include#includeintmain(){inti,j,gdrive... 这是在能TC上运行的小球动态碰撞的程序,调用了图形函数graphics.h。如何用getch()能达到和用kbhit()一样的效果?

#include

#include

int main()

{

int i,j,gdriver,gmode,size;

void *buf;

gdriver=DETECT;

initgraph(&gdriver,&gmode,"d:\\tc2\\bgi");

setbkcolor(BLUE);

cleardevice();

setcolor(LIGHTRED);

setlinestyle(0,0,1);

setfillstyle(1,10);

circle(31,200,30);

floodfill(31,200,12);

size=imagesize(0,169,62,231);

buf=malloc(size);

getimage(0,169,62,231,buf);

putimage(500,269,buf,COPY_PUT);

putimage(320,170,buf,COPY_PUT);

while(1)

{

for(j=0;j<4;j )

for(i=0;i<260;i )

{

if(kbhit()) {closegraph();exit(0);}

switch(j)

{

case 0:

putimage(i,170,buf,COPY_PUT);

break;

case 1:

putimage(321 i,170,buf,COPY_PUT);

break;

case 2:

putimage(581-i,170,buf,COPY_PUT);

break;

case 3:

putimage(260-i,170,buf,COPY_PUT);

break;

}

}

}

}

以上是一个小球动态碰撞的程序,一运行小球就开始永不停歇的运动,碰撞,反弹,再碰撞,如此循环,直到有键盘输入为止(这是kbhit()的作用)。怎么巧妙运用getch()能达到用kbhit()一样的效果?

如果把if(kbhit()){closegraph();exit(0);}直接换成if(getch()){exit(0);closegraph(0);},运行程序小球开始没有动,按任意键就动,而且动了后就停不了,也回不去tc的编辑页面了,非得退到桌面关掉整个tc。怎么用getch()能让小球随动随停?

小弟表示木有财富值了^_^|| 展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值