-1

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

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

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

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

4

2 回答 2

0

谢谢大家的帮助,原来我的线路有问题,sf::RenderWindow v(sf::VideoMode::getDesktopMode(), "SFML");这是因为没有安装VC++插件,这就是为什么我总是得到“找不到”winmm.lib“”错误。

其他人提供的这两个代码示例都可以工作,只是我......对不起,但非常感谢!

于 2017-11-13T19:43:51.720 回答
0

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

#include <iostream>
#include <SFML\Graphics.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;
}

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

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

于 2017-11-13T12:22:07.097 回答