level 2
我最近在编一个小游戏俄罗斯方块,其中有个问题不能解决,就是方块在下落的过程中不能对其左右和变形控制,我试了很多方法都不行,因为dos下只能同时执行一个命令,后来我想起用bios中断,不知道行不行,都好几天了,我实在不知道用什么方法了,请各位高手帮忙!
2004年11月01日 04点11分
1
level 9
第一,请你以后写正确的题目.第二,无论是dos还是windows,在单cpu的电脑里,每个时刻,它们都只能执行一条指令.因此你的问题不是系统的问题,而是你算法的问题.我提供一个思路:game(){ get_a_key();//if no key ,continue; if(check_key_can_action())action();//if a key pressed,'left' for example, check it can move left or not. if(can_down())down();//at last it will go down.check if it can go down. else other();//if can't go down. which means it has already on the bottom.}
2004年11月01日 04点11分
2
level 2
谢谢,我是初次来这里,请大哥原谅。你写的我看的不太清楚,我的e文不太好。我的一位朋友曾用basic编猪小弟的游戏,他在这方面处理的很好,我试过也不行,另外还有一个问题,我用到delay这个精确到毫秒的函数,但发现在tc2.0下不能用,太快,即便是delay(10000000000000000000)也还是用不了0.1秒,这是怎么回事?
2004年11月02日 06点11分
3
level 9
delay(10000000000000000000);这样的函数调用,你在TC下能用就是出鬼了.不是delay函数出的错,而肯定是你编写的程序有问题.delay(1000)我以前常用,肯定能延时1秒左右.如果你连我上面回复的英文都看不懂,那你最好还是买本书吧.游戏编程有它独特的处理方式.和普通的思路是不一样的.这方面你多看看C闲人在本吧发的那些程序.从中好好学学.我已经很久很久不用TC编游戏了,没办法给你更多的帮助.
2004年11月02日 08点11分
4
level 0
是啊,我的哪个delay()也不行啊.所以我只好用sleep(1)了.我想问一下斑竹,是不是sleep这个函数最短只能延迟一秒?能不能延迟更少时间?
2004年11月03日 09点11分
5
level 9
这个问题查查手册很快就有答案了:sleep(unsigned int seconds);
2004年11月03日 09点11分
6
level 2
我试用过delay(1000)是不行的,绝对延迟不了1秒,恐怕连1毫秒都延迟不了
2004年11月04日 00点11分
7
level 0
delay()函数不行啊!不知道怎么用,斑竹能不能说清楚一点。
2004年11月04日 04点11分
8
level 9
自己查手册.TC里本来就有手册.我早就说过了,TC的问题我不会有问必答.因为我早就不用它了.想回答也没条件.
2004年11月04日 04点11分
9
level 9
另外我记忆当中,delay(int m);的作用是这样的:延时m*4毫秒.我以前在DOS下用TC延时一秒应该是delay(250);不是delay(1000);不过我记不清楚了.毕竟是好几年前的事了.而我从来不记函数.把函数记下来,纯粹是找罪受.放着手册在那里不用.但这样的函数在windows下可能和windows系统冲突.所以,你要用tc,就老老实实地用dos.不然,出现的任何问题,别来问我,我也不知道windows为什么不和dos完全一样.要问问Bill 该死去.windows 和 msdos 都是他出的.
2004年11月04日 05点11分
11
level 0
我在tc++3.0中delay()函数使用起来很正常的,在tc2.0中却不行,实在没办法了.谢谢诸位了,此问题告一段落,我自己想办法吧
2004年11月05日 00点11分
12