AEJoy —— 表达式之仅限在某一维摆动【JS】

444 阅读1分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

效果图

wiggle() 的作用仅限于水平方向

ue45.gif

想法

wiggle() 确实是一个非常方便的工具,但有时您希望对它有更多的控制。在本例中,我们希望仅将摆动限制在水平方向。

设计

要理解 wiggle() 最重要的一点是,它生成的结果与应用它的属性具有相同的维度。例如,如果你将 wiggle() 应用于 3D 层的 position 属性,结果将是一个由三个元素组成的数组(x、y 和 z 各一个)。我们需要做的就是将 wiggle() 的结果捕捉到一个变量(我们称之为 “w” ),然后从这个变量中提取我们想要摆动的维度,并将它与其他维度的未摆动的值结合起来。

描述代码的时间比编写代码的时间要长! 这是代码:

表达式

w = wiggle(2,50); ///< 频率为每秒两次摆动,幅值为 50 像素;对于 2D 的层,得到的将是一个二维的数组
[w[0],value[1]]  ///< y 分量保持应用表达式之前的值

在表达式中,value 表示属性在表达式应用之前的值。对于多维属性,例如 Position(位置), value 将是一个数组。

您可以使用属性的名称(在本例中是位置)来代替 value ,但是使用 value 可以使表达式在不同属性之间更易于移植。