如何解决sf::Event::Keypressed 在轮询事件循环中不起作用 -SFML-2.5.1
#include <iostream>
#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>
#include <SFML/System.hpp>
int main(){
sf::RenderWindow window(sf::VideoMode(640,480),"Window");
while (window.isopen())
{
sf::Event event;
while (window.pollEvent(event))
{
switch (event.type)
{
case sf::Event::Closed:
window.close(); break;
case sf::Event::Keypressed:
std::cout << event.key.code;
break;
}
}
}
return 0;
}
我收到一堆这样的警告enumeration value 'MouseLeft' not handled in switch
我试着把它放在一个 if
语句而不是一个摆脱警告的 switch
中,但它仍然不会输出 event.key.code
我只能在我放的时候让它工作它在 pollevent(event)
循环之外,但随后没有收到字母。
解决方法
在您的 << std::flush;
之后添加 cout
,您将看到密钥代码。否则,在离开 SFML 主循环之前不会打印它们(不是在中断时,而是在使用 x 按钮正常关闭时)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。