我正在与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瑞邦公司的Java通用吐温引擎 。 这将执行插值和有几个缓解方程,我想会得到你所期待的。 它还有其它一些高级功能,如waypointing和其他有趣的效果链接某些行动起来。
你的游戏逻辑可以检查,看看是否字符快速移动或具有位置而言的阶跃变化。 为了应对这一点,把你的当前相机位置到吐温引擎,让它接手 - 顺利缩放至人物的当前位置。