2014-03-03 181 views
0

你好,我正在用C創建一個遊戲。我想在那裏每隔0.1秒打印一幀圖片。在此期間,用戶可能會或可能不會使用getch()輸入。等待最多X次輸入,然後繼續執行程序?

我該如何編寫這樣的程序?下面我可以提供給你們一起工作。

do{ 
usleep(100000); // simple 100 mili second delay 
if (getch()==32) (ASCII for a space) // may or may not be inputed in 0.1 second timeframe. 
playerJumps; 
// even if user inputs early, I still want game printed exactly every 0.1 sec not sooner/later. 
printGame; 
}while(notDead); 

我真的希望我不停代碼很好的和明確的

回答

0

我以前也這樣做了,你將不得不說說你是什麼平臺上。所有C庫輸入函數都會阻塞以等待輸入。一種方法是使用線程 - 用戶輸入中有一個線程塊,另一個線程處於遊戲狀態,並且在輸入時由輸入線程通知它。另一種方法是在linux上使用一個像poll()這樣的函數,我相信這是我使用的,他們基本上允許你指定一個等待期,或者只是試着看看是否有輸入,如果沒有,噸。雖然我認爲select()也應該起作用,我認爲這應該是相對跨平臺的。

相關問題