2016-03-06 140 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