It is porting of shake.js library to Lua.
The module is designed to be compatible with any Lua engine that can get delta-time between update cycles and accelerometer data.
Example of usage with Love2d (free 2d Game Engine):
main.lua
function love.load()
shakeDetector = require "shakeDetector"
local joysticks = love.joystick.getJoysticks()
joystick = joysticks[#joysticks]
end
function love.update(dt)
local x, y, z = joystick:getAxes()
shakeDetector:update(dt, x, y, z)
end
function love.draw()
love.graphics.print(shakeDetector.count)
end
Update shake detector
update(dt, x, y, z)
arguments: delta-time between update cycles, accelerometer data x-axis, y-axis, z-axis
Get shakes count
local shakesCount = shakeDetector.count
Changing threshold and timeout:
shakeDetector:reset() -- reset to defaults (threshold = 0.5, timeout = 0.25)
shakeDetector:reset(0.6, 0.3) -- set threshold to 0.6 and timeout to 0.3
shakeDetector:reset(nil, 0.4) -- set threshold to default (0.5) and timeout to 0.4
shakeDetector:reset(0.2, nil) -- set threshold to 0.2 and timeout to default (0.25)