如何绑定libGDX中的缩放变焦?

时间:2016-09-20 06:42:46

标签: java android libgdx

我一直在尝试为CameraInputController挑选缩放缩放。我希望它放大和缩小原点,但是在3到10之间。我把这段代码放在zoom()函数中:

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以上,当缩小时,相机会大幅跳跃接近10.奇怪的是,如果我没有这些界限,捏缩放非常平滑。

如果我输出金额变量,那么缩放变焦会给我很多数字,缩小时会出现这样的情况:

-3.4762511    
3.425479
-3.386308
3.353984
放大时

和这个:

3.6231816
-3.553997
3.8673449
-3.81199

当我查看CameraGestureListener中的zoom()函数时,其中的金额值也会变化。如果我查看pinch()函数,那么每次调用它时,指针2位置在第一个和第二个手指的位置之间交替。

这可能是个错误吗?任何人都知道发生了什么事?我怎么能解决这个问题呢?

1 个答案:

答案 0 :(得分:0)

我自己想通了!结果如果您只是检查相机位置并将其移动到render()函数中所需的位置,而不是在相机控制器内的侦听器中,那么一切正常。我想我有点过于复杂了。