c++ - 键盘事件 | SFML I 当我按下键时,它被读取两次
问题描述
我有这个标题:
void keyboardControl(sf::Event event) {
if (event.type == sf::Event::KeyPressed) {
if (event.key.code == sf::Keyboard::Up) {
std::cout << "Pressed Up" << std::endl;
}
if (event.key.code == sf::Keyboard::Enter)
std::cout << "Pressed Enter" << std::endl;
}
}
代码 int main.cpp:
int main() {
sf::RenderWindow window(sf::VideoMode(WND_WIDTH, WND_HEIGHT), "SFML", sf::Style::Default);
while (window.isOpen()) {
sf::Event event;
while (window.pollEvent(event)) {
if (event.type == sf::Event::Closed)
window.close();
keyboardControl(event);
}
window.clear();
window.display();
}
return 0;
}
该keyboardControl
函数在 中的同一个地方被调用main.cpp
,当您在控制台中按 ( Up, Down, Left, Right) 键时显示一次消息,同时按 时Enter显示两次,可能是什么错误?
PS 现在我已经编辑了代码,任何按Up或Enter键都会导致控制台中的双重输出