首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >KeyRelease事件在全屏模式下未触发

KeyRelease事件在全屏模式下未触发
EN

Stack Overflow用户
提问于 2013-09-14 14:08:46
回答 1查看 772关注 0票数 1

正如标题说的那样,在Mac上,KeyRelease事件根本不会在全屏模式下触发(还没有测试过Linux/Windows,可能也会中断)。

下面是代码:

代码语言:javascript
复制
sf::ContextSettings settings;
settings.antialiasingLevel = 8;

sf::RenderWindow window(sf::VideoMode::getDesktopMode(), "My Game", sf::Style::Fullscreen, settings);
window.setFramerateLimit(60);
window.setVerticalSyncEnabled(true);
window.setMouseCursorVisible(false);

while (window.isOpen())
{

    while (window.pollEvent(event))
    {
        // Close window : exit
        if (event.type == sf::Event::Closed) {
            window.close();
        }

        if (event.type == sf::Event::KeyPressed) {
                switch (event.key.code) {
                    case sf::Keyboard::Escape: // Escape pressed : exit
                        window.close();
                        break;
                    default:
                        game->handleKeyCode(event.key.code);
                        break;
                }

        } else if(event.type == sf::Event::KeyReleased) {
                printf("KeyRelease Fired!\n");
        }
    }
}

如果我不使用全屏模式,而是像这样初始化window,那么KeyRelease事件就能正常工作:

代码语言:javascript
复制
sf::RenderWindow window(sf::VideoMode(1400, 950), "My Game", sf::Style::Default, settings);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-20 20:40:52

一个最近承诺修复了这个问题。从git编译SFML应该可以解决这个问题。有关编译的详细信息,请参阅官方教程

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18802615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档