2010-06-27 2 views
2

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

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

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

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

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

Редактировать:

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

ответ

4

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

Смежные вопросы