Я использую GLFW для записи состояний джойстиков в проекте робототехники и натолкнулся на что-то странное.Почему эта программа GLFW не опроса для джойстиков?
На Macbook Air, работающем 10.11.3, GLFW возвращает состояние джойстиков в начале программы. Документация утверждает, что она обновляет состояние каждый раз, когда вызывается функция джойстика. Использование функции джойстика и функции имени джойстика возвращают только исходное состояние.
Я не могу раскрыть мой код. Тем не менее, я использую ImGui, и одна из его выборочных программ должна быть достаточной. Чтобы воспроизвести проблему, запустите проект «opengl3_example» с этими изменениями:
Сразу после линии ImGui_ImplGlfwGL3_NewFrame();
, добавьте это:
for (int i = 0; i < 15; i++)
{
if (glfwJoystickPresent(i) != GL_TRUE)
{
printf("There are %d joysticks detected.\n",i); break;
}
}
В моем случае, если программа запускается без каких-джойстиков прилагается, и один после того, как программа запустилась, он будет утверждать, что все равно будет добавлено 0 джойстиков. Проблемы выходят за пределы этой функции, поскольку состояния кнопок и осей также не обновляются.
Я использую последнюю версию GLFW 3.1.2, скомпилированную из источника. Пожалуйста, посоветуйте мне об этом.
EDIT: Если вы хотите знать, что должно произойти, посмотрите видео https://www.youtube.com/watch?v=mx0IUbxAQ34 на метку времени 2:09.
EDIT: Я пробовал другую библиотеку, и он правильно определяет джойстики.
Заранее спасибо.
Означает ли состояние оси и кнопки правильное положение, если палка прикреплена ПРИОР к запуску программы? –
Осевые состояния не обновляются корректно, по сути, по крайней мере для первого джойстика, обнаруженного GLFW. Он показывает четыре оси в массиве, все содержащие float 138690176035340265469942380959367168.000000 или что-то очень похожее, всегда начиная с 1386. Все остальные оси для других джойстиков равны 0. Во время программы значения никогда не изменяются или не обновляются. –
Имеет ли проблема с проблемой «джойстика»? – elmindreda