local mouseControl = { isActive = false } local love = love local x, y = 0, 0 local DECAY = 0.8 local SENSITIVITY = 0.8 function mouseControl.Reset() x, y = 0, 0 end function mouseControl.mousemoved( dx, dy ) dx, dy = SENSITIVITY * dx, SENSITIVITY * dy dx, dy = dx * dx * dx , dy * dy * dy x, y = dx + x, y - dy return mouseControl.getAcceleration() end function mouseControl.update() local norm = math.sqrt( x * x + y * y ) local decay = DECAY * norm / ( norm + 1 ) x, y = decay * x, decay * y end function mouseControl.getAcceleration() local norm = math.sqrt( x * x + y * y ) if norm > 1 then return x / norm, y / norm end if norm < 0.001 then return 0, 0 end return x, y end return mouseControl