2013-04-21 2 views
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 축 사실이다.

왜 이런가요?

+0

명확히하는 것, 당신은 문제의 코드는 잘못된 논리를 사용하여 정확한 결과를 제공 말? 반대 순서로 정의 된 y & x로 POINT를 재정의하지 않았다는 것을 확인할 수 있습니까? – kibibu

답변

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

아마

Rotation -> x += DifferenceX/Sensitivity; 
Rotation -> y -= DifferenceY/Sensitivity; 
+0

카메라를 좌우로 움직이면 카메라가 위아래로 기울어 져 – Split

+0

@ Split이되어 실제로 이상한 오류가 발생하지 않는다고 생각합니까? – taocp

+0

왜 나는 그것이 단지 잘못된 방향으로 만 돌아가는지를 궁금해했다. – Split

관련 문제