我需要一个这样的函数。水平值是时间,垂直值是输出。从时间 0
开始,该值应为 -1
或 1
。增加时间量,该值应变为 1
和 -1
,从而减少每次“弹跳”时的距离。
我过去曾使用黑客代码完成过此操作:将目标值存储在变量中,每次该值达到目标值时,我都会执行targetValue *= -.5
,等等上。
也许有一个更好的实现,使用数学函数,不需要手动执行此操作。对我来说,它就像一个三角函数,但最终输出乘以 1 - (time/maxTime)
,它不是波浪而是线条。
最佳答案
如果您对确切的形状不感兴趣,那么 targetValue *= -.5
正是我要做的,只要调用绘制图形的函数之间的时间增加即可是平等的。我认为这是一个不错的选择,因为它是最简单的选择,可以满足您的需求。如果时间增量不相等,您可能需要与 -(time-Increment) 成比例的值,而不是始终与 -.5 成比例。
关于math - 乒乓球值随着时间的推移而降低,以产生闪烁效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16819605/