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