Почему event.mouseWheelScroll.delta всегда возвращает 0, используя SFML?

Я тестирую функцию в библиотеке SFML mouseWheelScroll.delta но я всегда получаю возвращаемое значение 0. Почему это может быть?

Мой код, который я использовал ниже, обратите внимание, что в некоторых первых строках кода в программе я инициализировал переменную sf::Event event;,

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

Нужно ли в библиотеке SFML окно или она может использовать консоль? (Я спрашиваю только потому, что я создаю консольное приложение)

-1

Решение

Я почти уверен, что вы что-то забыли в своем цикл событий. Я попробовал этот фрагмент, и он отлично работает

#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;
}

Пожалуйста, попробуйте и сравните, что вы делаете неправильно (а затем поделитесь с нами)

Отвечая на ваш второй вопрос, я создал окно рендеринга, но я думаю, что ваш вопрос больше касается того, может ли проект быть консольным приложением, и на самом деле это оно, и если вы попробуете его, оно отобразит и консоль, и окно.

0

Другие решения

Спасибо всем за помощь, оказывается, у меня были проблемы с линией sf::RenderWindow v(sf::VideoMode::getDesktopMode(), "SFML"); и это было потому, что надстройка VC ++ не была установлена, поэтому я всегда получал ошибку «не удалось найти« winmm.lib »».

Оба этих примера кода, которые предоставили другие, работают, это был только я … извините, но это очень ценится!

0

По вопросам рекламы [email protected]