我正在使用 LibGDX (Java) 制作游戏。
我需要相机跟随一个快速移动的角色。最简单的方法就是这样写:
this.getCamera().position.set(obj.x, obj.y, 0);
但是,有什么算法可以让这更流畅吗?就像镜头没那么严格,总是有点晚:角色快速向右,镜头跟随稍有延迟,或者如果你突然出现在很远的地方,镜头不会立即传送而是以最快的速度移动到你身边靠近它会放慢一点速度并再次找到你。
是否有任何 libgdx 库可以做到这一点或有人有这种经验?
我正在使用 LibGDX (Java) 制作游戏。
我需要相机跟随一个快速移动的角色。最简单的方法就是这样写:
this.getCamera().position.set(obj.x, obj.y, 0);
但是,有什么算法可以让这更流畅吗?就像镜头没那么严格,总是有点晚:角色快速向右,镜头跟随稍有延迟,或者如果你突然出现在很远的地方,镜头不会立即传送而是以最快的速度移动到你身边靠近它会放慢一点速度并再次找到你。
是否有任何 libgdx 库可以做到这一点或有人有这种经验?
尝试一些简单的事情,比如 lerping 十分之一的距离。它的效果出奇的好。
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;
看看 Aurelion Ribon 的Java Universal Tween Engine。这会执行插值并有几个缓动方程,我认为它们可以让你得到你想要的东西。它还具有其他高级功能,例如路标和将某些动作链接在一起以获得其他有趣的效果。
您的游戏逻辑可以检查角色是否快速移动或在位置方面是否有阶跃变化。作为对此的回应,将您当前的相机位置转移到补间引擎并让它接管 - 平滑地缩放到角色的当前位置。