0

我在使用 C++ 和 Ncurses 进行编程运动时遇到问题。我正在编写一个 pacman,主要问题是,我只想在时间段内最后一次按下键。

当我使用usleep时,它会保存在睡眠期间按下的每个键,然后按顺序使用它。

感谢您的想法。

4

2 回答 2

1

你尝试了什么?

如果我正确理解您试图实现的目标,这样的事情应该可以工作:

int t = your_delay;
while (t --> 0)
{
    sleep(1);
    c = getch();
}

如果你真的需要将它计时到微秒,这可能不是最好的方法,但如果你可以有一些容忍度,这就足够了。

于 2012-05-18T21:29:28.070 回答
0

您是否处于无延迟模式?如果是这样,这可能会起作用:

usleep(your_delay);
last_key = ERR;
while ( (key=getch()) != ERR ) {
  last_key = key;
}
// "last_key" now holds most recent key, if there was one, else ERR
于 2012-05-18T21:33:47.257 回答