如何在LibGDX中限制透视相机的缩放是最好的方法?我有一个在太空中的星球,我需要放大/缩小它。 缩放效果很好,但我必须限制它,以防止行星离用户太近或太远。现在,我正在使用标准的CameraInputController
来放大/缩小并使用以下代码进行限制:
protected boolean pinchZoom (float amount) {
if(rho>25.f && rho<60.f){
return zoom(pinchZoomFactor * amount);
}
camera.update();
rho = calculateRho();
if(rho<=25.0){
while(rho<=25.0){
zoom(-.1f);
camera.update();
rho = calculateRho();
}
}
if(rho>=60){
while(rho>=60.0){
zoom(.1f);
camera.update();
rho = calculateRho();
}
}
}
private float calculateRho(){
return (float) Math.sqrt(Math.pow(camera.position.x, 2)+
Math.pow(camera.position.y, 2)+Math.pow(camera.position.z, 2));
}
使用这段代码时,我的相机有时会微微晃动。因此,我找到了另一种方法。