0

マウスの動きをテストし、そうであればカメラを変更することになっている次のコードがあります。

POINT myMouse;
GetCursorPos(&myMouse);

float Sensitivity = 10;

if(myMouse.x != middleX || myMouse.y != middleY)
{
    float DifferenceX = myMouse.x - middleX;
    float DifferenceY = myMouse.y - middleY;

    Rotation -> y += DifferenceX/Sensitivity;
    Rotation -> x -= DifferenceY/Sensitivity;
    if(Rotation -> x > 90) Rotation -> x = 90;
    if(Rotation -> x < -90) Rotation -> x = -90;
    if(Rotation -> y > 360) Rotation -> y = 0;

    SetCursorPos(middleX, middleY);
}

何らかの理由で、DifferenceX は実際には Y 軸であり、DifferenceY は実際には X 軸です。

どうしてこれなの?

4

1 に答える 1

4
 Rotation -> y += DifferenceX/Sensitivity;
           //^^ y and x seems reversed
 Rotation -> x -= DifferenceY/Sensitivity;

おそらくそうあるべきです

 Rotation -> x += DifferenceX/Sensitivity;
 Rotation -> y -= DifferenceY/Sensitivity;
于 2013-04-21T23:40:19.660 に答える