2014-03-03 112 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()也应该起作用,我认为这应该是相对跨平台的。

相关问题