0

您好,我正在用 C 语言创建游戏。

我希望每 0.1 秒打印一个帧。在此期间,用户可能会或可能不会使用 getch() 进行输入。

我该如何编写这样的程序?这是我可以为你们提供的工作。

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);

我真的希望我能保持代码清晰明了

4

1 回答 1

0

我以前做过这个,你将不得不谈论你在什么平台上。所有的 C 库输入函数块等待输入。一种方法是使用线程——你在用户输入上有一个线程块,另一个做游戏,当有输入时它会被输入线程通知。另一种方法是在 linux 上使用 poll() 之类的函数,我相信这是我使用的,它们基本上允许您指定等待时间,或者只是尝试查看是否有输入,如果没有则立即返回吨。虽然我认为 select() 也应该可以工作,而且我认为这应该是相对跨平台的。

于 2014-03-03T22:18:08.917 回答