我正在开发游戏,现在我正在使用ncurses库提供的getch
函数。
来自here:
nodelay
选项会导致getch
成为非阻止呼叫。如果没有准备好输入,则getch返回ERR。如果禁用(bf为FALSE),则getch会等待,直到按下某个键。
也就是说,默认情况下getch()
是阻塞函数,如果将nodelay
设置为TRUE,则可以使用非阻塞输入用户函数。
在另一种方法中,我可以使用多线程来捕获用户输入而不会阻碍游戏过程。
问题
我是否浪费时间使用线程重写代码或使用该方法获得某些内容(速度响应,可移植性等)?
Ncurses是一个很好的库来制作控制台应用程序,但我对用户输入有疑问。
答案 0 :(得分:2)
如果您的多线程应用程序使用多个线程使用显示器,则无需付出一些努力就无法工作。
ncurses常见问题解答说明了更多信息: Why does (fill in the blank) happen when I use two threads?