2016-09-20 48 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()函数中的所需位置,而不是在相机控制器内的侦听器中,则一切正常。我想我已经有点复杂了。