俄罗斯方块的问题!
Roy T 2006-05-23 05:01:06
这两天我用纯C的纯字符界面实现的,就是在控制台打印ASCII码。
主体功能已经弄好了,但是有一个问题,C语言没有多线程,那么下落,和接收键盘改变方块的位置和形态,这两个本身应该是线程的东西,应该怎么放在一块儿呢,我的东西现在只能在原地不动,接收键盘输入来玩,有无限的时间考虑:)
用dos.h提供的delay()函数可以实现下落的延时,可岩石过程中进程是挂起的,因此不能接受键盘输入;用getch()接受键盘输入,进程是阻塞的,同时也不能实现自动下落。。郁闷。。似乎无解了。可我看到过有人做过C语言的俄罗斯方块啊(但是似乎都达不到游戏机上那种自由的效果,在移动的时候会有不该有的延时显得很生硬),
我有这么个想法:那就是循环一定的次数,每一次循环中使用bios.h中提供的bioskey()函数来接收键盘,没有输入就继续进行,如果有输入就等待循环结束,按输入移动方块。这样下落的延时就实现了,可是问题又来了,这样不停的算着程序太累了吧?而且速度会不稳定,而且我的编译器没有bios.h :(
哪位能给点儿建设性的意见,谢谢