我正在写一个类似于旧学校赛车的终端游戏,你只能改变车道以避开障碍物。我已经能够编码除了要求输入的部分之外的所有其他内容以便更改通道。对于输入,此功能应该等待2秒,如果有输入,则确定要更改的通道。 cin>>input;
使程序无限期地等待,由于某种原因getchar();
不起作用。
我已经搜索过并找到了这个:Wait for input for a certain time
我的问题是我没有<conio.h>
,<curses.h>
和<ncurses.h>
所以我无法使用getch();
我有什么方法可以让计算机在没有这些库文件的情况下执行此操作?
我还需要帮助减少等待所需的时间,以增加游戏的难度。 sleep();
无法正常工作,因为它的库文件未包含在内,我在使用nanosleep();
时遇到问题,但我希望每次玩家必须输入的时间间隔减少.1秒直到输入只有0.5秒。有没有办法可以做到这一点?
与我现在的相关的代码:
答案 0 :(得分:2)
如果你想按自己的方式编写代码,你可以创建另一个处理输入的线程,主程序在x时间后杀死该线程并检查是否已经创建了一个条目。
答案 1 :(得分:0)
C ++标准没有&#34;等待X单位时间的输入&#34;。因此,将需要使用某些库或特定于操作系统的功能来实现此目的。既然您已经提到了nanosleep
,那么您可能正在使用Linux,因此请安装ncurses
并使用它。