2016-03-06 141 views
-1

我正在写类似于一个老同学的赛车在那里你只能改变车道,以避开障碍物的基于终端的游戏。我已经能够编码除了它要求输入的部分以外的所有其他部分,以便改变车道。这个功能应该等待输入2秒钟,如果有输入,它将确定要更改的通道。 cin>>input;使程序无限期地等待并由于某种原因getchar();不起作用。c + +等待输入

我已经搜查,发现这一点:Wait for input for a certain time

我的问题是,我没有<conio.h><curses.h><ncurses.h>所以我将无法使用getch();有没有什么办法,我可以做计算机没有这些库文件吗?

我还需要帮助减少需要为了增加游戏的难度等待的时间。 sleep();不工作,因为它不包括库文件和我在使用nanosleep();麻烦,但我希望能够.1秒每个球员必须输入时间以减少时间间隔,直到只有0.5秒,以输入。有没有办法可以做到这一点?

都跟我现在有代码:

this is the function in its current state

this is what i'm using in order to use kbhit();

+1

这样做没有平台无关的方式。你在哪个平台上? –

+2

您没有标题?轻松得到他们:) – Joel

+0

我在Windows上。 – user2426191

回答

0

C++标准没有 “等待的时间X单位输入”。因此,您需要使用一些库或操作系统特定的功能来实现此目的,其中将会。既然你已经提到nanosleep,你可能正在使用Linux,所以安装ncurses并使用它。

如果你想编写你的方式,你可以创建另一个线程来处理输入
+0

不幸的是,当我尝试使用'#inlude '时,它给出了一条错误消息,没有找到它 – user2426191

+0

因此,你需要安装它(并且指出你的编译器到它的安装位置,可能) –

+0

我不'我想我可以安装它,因为我正在逃离我大学的网络,我需要某种管理员权限。 – user2426191

2

,主程序杀死×时间和检查后,该线程如果一个条目已经取得进展。

+0

我认为你愿意打入或每一点呢? –

+0

只要程序等待一定的时间输入,我就愿意。但是,我不知道从哪里开始做这个解决方案,因为我还没有学会如何做到这一点。你能指点我一个链接,所以我可以尝试做到这一点? – user2426191