Входные данные SFML GetMouseX и GetMouseY не привлекают движения мыши - PullRequest
2 голосов
/ 27 июня 2010

Я программирую графический интерфейс в своем приложении, и я заметил, что нажатия кнопок регистрировались не очень быстро. Я выполнил ленивую отладку (отправил координаты мыши на выход) и заметил, что GetMouseX и GetMouseY в Input не реагируют достаточно быстро, когда мышь куда-то перемещается.

Этот маленький кусочек должен быть в состоянии воспроизвести его (в функции HandleEvents, которая вызывается в типичном игровом цикле, очевидно, замените App :: чем угодно, что у вас есть в рабочей области).

int x = App::GetApp()->GetInput().GetMouseX();
int y = App::GetApp()->GetInput().GetMouseY();
std::cout << x << " " << y << "\n";

Просто наведите курсор мыши на экран и посмотрите результат. Я не уверен, является ли это правильным поведением, и я использую это для неправильной цели, или что-то еще, но мне нужен какой-то способ получить точное местоположение мыши в любой момент времени. Любая помощь приветствуется, спасибо.

P.S. Если я медленно двигаю мышь, проблема не возникает.

Edit:

Я был не прав. Проблема возникает только в контексте с остальной частью происходящего. Когда я заблокировал большую часть игрового цикла и включил только получение позиции курсора, он работал нормально. Все еще не уверен, что не так, хотя.

1 Ответ

4 голосов
/ 30 июня 2010

Проблема заключалась в том, что я опрашивал только одно событие на кадр, а не опрашивал все события.

...