尝试将光标居中时,相机旋转受损

时间:2015-03-12 14:58:46

标签: c++

我正在使用C ++ / OpenGL创建一个小FPS游戏,而且我遇到了一个问题。

以下是我的相机旋转功能的代码:

OldMouseX = MouseX;
    OldMouseY = MouseY;

    GetCursorPos(&p);

    ScreenToClient(hWnd, &p);

    MouseX = p.x - CenterX;
    MouseY = p.y - CenterY;

    if ((MouseX - OldMouseX) > 0)  {           // mouse moved to the right
        heading -= 1.0f;
        yrot = heading;
    }
    else if ((MouseX - OldMouseX) < 0) {
        heading += 1.0f;
        yrot = heading;
    }

    if ((MouseY - OldMouseY) > 0)  {           // mouse moved up
        VertLook += 1.0f;
    }
    else if ((MouseY - OldMouseY) < 0) {
        VertLook -= 1.0f;
    }

    SetCursorPos(CenterX, CenterY);

现在,当我打电话

时会发生什么
SetCursorPos(CenterX, CenterY);

它可以防止我的相机旋转,只是轻轻地将它抖动。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

尝试将相机移动MouseX - OldMouseX / MouseY - OldMouseY(乘以某个因子),而不是每次打勾1