2016-09-20 75 views
3

我一直在試圖理清CameraInputController的縮放縮放。我想它和出產地的放大,但3和10之間爲界,我把這段代碼在變焦()函數:如何限制在libGDX捏縮放?

public boolean zoom (float amount) { 
if(camera.position.len() < 3 && amount > 0) 
{ 
    return false; 
} 
if(camera.position.len() > 10 && amount < 0) 
{ 
    return false; 
} 
if (!alwaysScroll && activateKey != 0 && !activatePressed) 
    return false; 
Gdx.app.log("zoom", amount + ""); 
camera.translate(tmpV1.set(camera.direction).scl(amount)); 
if (scrollTarget) 
    target.add(tmpV1); 
if (autoUpdate) 
    camera.update(); 
return true; 

}

,如果我工作正常只需調用縮放功能(例如變焦按鈕),但是當我縮小變焦時,相機可以在3倍的範圍內變焦,而當變焦距變近時,相機會跳得非常快。奇怪的是,如果我沒有這些限制,捏縮放非常流暢。

如果我輸出量變量,再捏縮放給了我相當多的數字範圍,這樣的變焦時指出:

-3.4762511  
3.425479 
-3.386308 
3.353984 

,並在此縮放時:

3.6231816 
-3.553997 
3.8673449 
-3.81199 

當我查看CameraGestureListener中的zoom()函數,其中的數值也是變化的負載。如果我查看pinch()函數,那麼每次調用pointer2位置時,都會在第一個和第二個手指的位置之間交替。

這可能是一個錯誤?任何人都知道發生了什麼?我該如何解決這個問題?

+0

你可以發佈演示項目嗎?我無法重現這個問題。 – pr0gramist

回答

0

我想出了自己!結果如果您只是檢查相機位置並將其移到render()函數中的所需位置,而不是在相機控制器內的偵聽器中,則一切正常。我想我已經有點複雜了。