如何制作流畅的摄像机跟踪算法?

时间:2012-11-05 07:50:19

标签: java opengl 2d libgdx smooth-scrolling

我正在与LibGDX(Java)进行游戏。

我需要相机跟随快速移动的角色。最简单的方法是写下这个:

this.getCamera().position.set(obj.x, obj.y, 0);

但是,有没有算法使这更顺利?就像相机不是那么严格,而且总是有点迟了:角色走得很快,相机跟着稍微延迟,或者如果你突然出现在远处,相机不会瞬间传送,但是当它以最快速度传送给你时越来越近,它慢慢减速并再次找到你。

是否有任何libgdx libs可以做到这一点或任何人都有这种经历?

2 个答案:

答案 0 :(得分:43)

尝试一些简单的方法,比如练习十分之一的距离。它的效果非常好。

float lerp = 0.1f;
Vector3 position = this.getCamera().position;
position.x += (Obj.x - position.x) * lerp * deltaTime;
position.y += (Obj.y - position.y) * lerp * deltaTime;

答案 1 :(得分:6)

看看Aurelion Ribon的Java Universal Tween Engine。这会执行插值并有几个缓动方程式,我认为这些方程式可以满足您的需求。它还具有其他高级功能,如寻路和将某些动作链接在一起,用于其他有趣的效果。

您的游戏逻辑可以检查角色是在快速移动还是在位置方面有所改变。为此,将当前摄像机位置转到补间引擎,让它接管 - 平滑地缩放到角色的当前位置。