1

我是怎么处理这个的?我想在 x 时间内将一个值从一个值补间到另一个值。同时还考虑到在开始和结束时有一个“轻松”会很好。

我知道,我真的不应该问,但我自己试过了,我被困住了。请假设要导致延迟,您需要调用函数 wait(time)。

4

2 回答 2

4

一种可能对您有用的简单方法是沿单位圆内插: 单位圆

为此,您只需评估圆上的点,这可确保相当平滑的移动以及缓入和缓出。您可以通过更改更改角度的速度来控制插值的速度。

假设您正在执行一维插值(即简单的标量插值,例如从 3.5 到 6.9 或其他),使用从 -π/2 到 π/2 的 Y 值可能会很方便。这些由正弦函数给出,您需要做的就是应用适当的缩放:

angle = -math.pi / 2
start = 3.5
end = 6.9
radius = (end - start) / 2
value = start + radius + radius * math.sin(angle)

我不是 100% 确定这是否是合法的 Lua,没有测试它。如果没有,转换可能很简单。

于 2009-05-13T12:56:25.620 回答
0

您可以查看Tweener ActionScript 库以获取灵感。

例如,您可以从这里借用必要的方程式。

如果您需要进一步的帮助,请询问。

于 2009-05-13T07:46:51.883 回答