如果在 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::event
s,我可以在第一次按下而不是按下时读取吗?
此外,如果它不可能或者您不熟悉 sfml,那么在很少或没有全球化变量的情况下模拟这种情况的最佳方法是什么?(例如is_already_held
),例如https://gamedev.stackexchange.com/questions/30826/action-button-only-true-once-per-press
我意识到这可能是唯一的方法(在更广泛的范围内声明变量),但我不希望这样做,因为我不断退出范围并尝试尽可能多地避开全局变量。