我正在制作一款必须在一段时间内回答问题的游戏。随着分数的增加,那个时间会减少。我正在使用这个功能。
var getTime = function(score){
var maxTime = 5000,
minTime = 750;
var reducedTime = maxTime * ( 1 - ( score * .1 ) );
return Math.max( reducedTime, minTime );
}
在这里看一个小提琴 - http://jsfiddle.net/QWV82/
我想改变我的功能,以便缩短时间。我希望使用Robert Penners easing equations之一。
// t: current time, b: begInnIng value, c: change In value, d: duration
easeOutQuint: function (x, t, b, c, d) {
return c*((t=t/d-1)*t*t*t*t + 1) + b;
}
我不确定是否可以将我的系统应用于他的方程式。我无法弄清楚我应该传递给函数的是什么。
这可能吗?我需要做的解释很棒。
答案 0 :(得分:1)
您应该可以像这样使用easeOutQuint()
(您需要maxScore
常量,如图所示):
var getTime = function(score){
var maxTime = 5000,
minTime = 750,
maxScore = 100;
return maxTime + minTime - easeOutQuint(null, score, minTime, maxTime-minTime, maxScore);
}
我们从minTime和MaxTime的总和中减去,因为您说您希望输出值向下倾斜。因此,这样返回的值将从maxTime开始,以minTime结束。
缓动函数的参数如下: