2013-04-21 77 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 2013-04-22 00:46:13

回答

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

大概應該是

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

你會認爲,但左右移動鼠標上下傾斜相機 – Split 2013-04-21 23:53:24

+0

@Split所以這實際上不是奇怪的錯誤的原因? – taocp 2013-04-22 00:05:23

+0

我只是想知道爲什麼它只有在錯誤的方式 – Split 2013-04-22 00:48:15