我正在测试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;
}
请尝试一下并比较您做错了什么(然后与我们分享(
回答你的第二个问题,我创建了一个渲染窗口,但我认为你的问题更多的是关于项目是否可以成为控制台应用程序,事实上,就是这样,如果你尝试一下,它会显示控制台和窗口。