我一直在尝试为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位置在第一个和第二个手指的位置之间交替。
这可能是个错误吗?任何人都知道发生了什么事?我怎么能解决这个问题呢?
答案 0 :(得分:0)
我自己想通了!结果如果您只是检查相机位置并将其移动到render()函数中所需的位置,而不是在相机控制器内的侦听器中,那么一切正常。我想我有点过于复杂了。