【发布时间】:2013-07-27 04:11:12
【问题描述】:
如果在 SFML 中刚刚按下(未按住)某个键,有没有办法接收,或者有一种方法可以模拟这种效果?
我在这里投票,
while (window.pollEvent(event));
然后在循环的后面,超出范围但使用相同的事件,我读到:
if (event.type == sf::Event::KeyPressed)
{
if (event.key.code == sf::Keyboard::Up)
{
decision--;
if (decision < 0)
decision = CHARACTER_MAX - 1;
}
}
这使得decision 在按住向上箭头时连续递减。使用sf::events,我可以在第一次按下时读取而不是在按住时读取吗?
另外,如果它不可能或您不熟悉 sfml,那么在很少或没有全球化变量的情况下模拟这种情况的最佳方法是什么? (例如is_already_held),例如https://gamedev.stackexchange.com/questions/30826/action-button-only-true-once-per-press
我意识到这可能是唯一的方法(在更广泛的范围内声明变量),但我不希望这样做,因为我会不断退出范围并尝试尽可能多地避开全局变量。
【问题讨论】:
-
while (window.pollEvent(event));注意;:这样做之后你只得到了最后一个事件。