码迷,mamicode.com
首页 > 其他好文 > 详细

镜头以及各种运动的缓动效果

时间:2019-05-01 12:04:48      阅读:380      评论:0      收藏:0      [点我收藏+]

标签:参数   简单   speed   浮点   puts   目的   结果   更新   简单的   

如果使用物理学的匀加速(减速)运动,会发现实际效果显得迟缓,而且代码还很复杂,不如使用简单的“逐渐插值靠拢”的办法。

就是在每帧更新中,cur = lerp(cur, dst, factor)

其中 cur 是当前值,dst 是目的值,factor 则是一个很小的浮点数。这样插值的结果作为新的当前值,下一帧继续插值。实际产生的缓动效果比匀加速(减速)效果更好。

可以加入两个控制参数,以调节变化的速度。

一个是 lerpSpeed,用来生成上面的 factor:

factor = lerpSpeed * deltaTime;

一个是 inputScale。

如果案例是根据鼠标拖动控制镜头转动,可以用 inputScale来缩放鼠标移动的距离,由此产生 dst 值。

onMouseDrag(mouseDelta)

{

  dst = cur + mouseDelta * inputScale;

}

有了dst值,剩下的就是在每帧更新中让 cur “逐渐插值靠拢” dst 了。

镜头以及各种运动的缓动效果

标签:参数   简单   speed   浮点   puts   目的   结果   更新   简单的   

原文地址:https://www.cnblogs.com/Dolaham/p/10799369.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!