如何使相机跟随算法流畅?

2022-09-02 02:33:47

我正在用LibGDX(Java)制作一款游戏。

我需要相机来跟随一个快速移动的角色。最简单的方法是编写以下内容:

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

但是,有没有什么算法可以使它更流畅?就像相机不那么严格,总是有点晚:角色快速向右移动,相机跟随轻微延迟,或者如果你突然出现在某个地方,相机不会立即传送,而是以最高速度向你移动,当它靠近时,它会减慢一点速度并再次找到你。

有没有 libgdx 库可以做到这一点,或者有没有人有过这样的经历?


答案 1

尝试一些简单的事情,比如拉十分之一的距离。它的效果出奇地好。

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;

答案 2

看看Aurelion Ribon的Java Universal Tween引擎。这执行插值并具有几个简化方程,我认为这些方程式将为您提供所需的内容。它还具有其他高级功能,例如指向航路和将某些操作链接在一起以获得其他有趣的效果。

您的游戏逻辑可以检查角色是否移动得很快,或者位置是否有阶跃变化。作为回应,将你当前的摄像机位置转到补间引擎,让它接管 - 平滑地缩放到角色的当前位置。


推荐