【发布时间】:2016-12-07 15:08:00
【问题描述】:
目前我正在尝试仅使用 sfml 库创建一个行为类似于 getch() 的函数(暂停直到有键)。需要注意的是,这应该在事件循环之外调用。我试过四处寻找类似的东西,但我什么也没找到。我当前的代码如下所示:
int waitForKeyboardHit (sf::Window *win) {
sf::Event event;
while (true) {
while (win->pollEvent (event)) {
if (event.type == sf::Event::KeyPressed) {
return event.key.code;
}
}
}
return -1;
}
虽然这在大多数情况下都可以正常工作,但是如果在调用此函数之前有任何 KeyPressed 事件进入事件窗口队列,而不是函数立即结束,而不是等到下一次键盘按下。在调用此函数之前,我已经尝试寻找清除窗口事件队列的方法,但我也没有找到任何可以做到这一点的方法。
【问题讨论】: