我正在尝试在 SFML 中生成按键事件,但找不到正确的方法。目前,该事件已被处理,但默认情况下,就像您在文本窗口中按下键盘上的任何字母键一样:短暂停顿后,它会以重复按下的速度进行处理,但我希望没有暂停一下,不要那么快。如果有任何选择,我很乐意提供帮助。
sf::RenderWindow window(sf::VideoMode(400, 300), "Draft");
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
if (event.type == Event::KeyPressed)
if (event.key.code == Keyboard::Space)
std::cout << "PRESS Space!!!\n";
}
window.clear();
window.display();
}
PS我不回复评论。
使用它
sf::Keyboard::isKeyPressed- 它只是检查每个帧中关键点的状态。也就是说,KeyPressed您可以使用上述方法检查按键是否被按下,而不是您的(处理事件的)。以防万一,如果您想控制消息的频率,请添加一个计时器
sf::Clock,然后添加一个间隔。事实证明,输出不会是每次迭代,而是在某个时间输出一次代码: