forked from ilikecats/papercats
28 lines
488 B
JavaScript
28 lines
488 B
JavaScript
|
|
function Rolling(value, frames)
|
|
{
|
|
var lag = 0;
|
|
|
|
if (!frames)
|
|
frames = 24;
|
|
|
|
this.value = value;
|
|
|
|
Object.defineProperty(this, "lag", {
|
|
get: function() { return lag; },
|
|
enumerable: true
|
|
});
|
|
this.update = function() {
|
|
var delta = this.value - lag;
|
|
var dir = Math.sign(delta);
|
|
var speed = Math.abs(delta) / frames;
|
|
var mag = Math.min(Math.abs(speed), Math.abs(delta));
|
|
|
|
lag += mag * dir;
|
|
return lag;
|
|
}
|
|
}
|
|
|
|
module.exports = Rolling;
|
|
|