Почему это не вычисляет разницу положения мыши и приводит к выходу камеры из-под контроля?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Гость
 Почему это не вычисляет разницу положения мыши и приводит к выходу камеры из-под контроля?

Сообщение Гость »


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

Код: Выделить всё

double newMouseX, newMouseY, oldMouseX, oldMouseY;

glfwGetCursorPos(getWindow(), &newMouseX, &newMouseY);

if(pitch > 90) pitch = 90;
if(pitch < -90) pitch = -90;

double dx = (newMouseX - oldMouseX);
double dy = (newMouseY - oldMouseY);

yaw += dx * 0.2f;
pitch += dy * 0.2f;

oldMouseX = newMouseX;
oldMouseY = newMouseY;
console output
I've tried using s instead of s and compared to an older project of mine that also uses a GLFW first person camera, and it seems to work fine (although it was written in Java and this one uses C).


Источник: https://stackoverflow.com/questions/781 ... ra-to-spin
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»