为什么 event.mouseWheelScroll.delta 总是使用 SFML 返回 0



我正在测试SFML库中的功能mouseWheelScroll.delta但我总是得到0的返回值。为什么会这样?

我使用的代码如下,请注意,在程序的第一行代码中,我初始化了变量sf::Event event;

    if (event.type == sf::Event::MouseWheelScrolled) {
    std::cout << "wheel movement: " << event.mouseWheelScroll.delta << std::endl;
}

SFML 库是否需要窗口,或者是否可以使用控制台?(我只是问,因为我正在创建一个控制台应用程序(

谢谢大家的帮助,事实证明我的线路sf::RenderWindow v(sf::VideoMode::getDesktopMode(), "SFML");有问题,这是因为没有安装 VC++ 附加组件,这就是为什么我总是收到"找不到"winmm.lib"错误。

其他人提供的这两个代码示例都有效,只有我......对不起,非常感谢!

我几乎可以肯定你在事件循环中忘记了一些东西。我试过这个片段,它工作正常

#include <iostream>
#include <SFMLGraphics.hpp>
int main(){
    sf::RenderWindow v(sf::VideoMode::getDesktopMode(), "SFML");
    while (v.isOpen()){
        sf::Event event;
        while (v.pollEvent(event)){
            if (event.type == sf::Event::Closed)
                v.close();
            else if (event.type == sf::Event::MouseWheelScrolled){
                std::cout << "Wheel: " << event.mouseWheelScroll.delta << std::endl;
            }
        }
        v.clear();
        v.display();
    }
    return 0;
}

请尝试一下并比较您做错了什么(然后与我们分享(

回答你的第二个问题,

我创建了一个渲染窗口,但我认为你的问题更多的是关于项目是否可以成为控制台应用程序,事实上,就是这样,如果你尝试一下,它会显示控制台和窗口。

相关内容

  • 没有找到相关文章

最新更新