Skip to content

Instantly share code, notes, and snippets.

@jasonbot
Created April 21, 2018 16:47
Show Gist options
  • Select an option

  • Save jasonbot/cf1e3841de6d26fac709d3215fb39d55 to your computer and use it in GitHub Desktop.

Select an option

Save jasonbot/cf1e3841de6d26fac709d3215fb39d55 to your computer and use it in GitHub Desktop.
local class = require("middleclass/middleclass")
local Keyboard = class("Keyboard")
function Keyboard:initialize()
self.keys = {}
self.keypresses = {}
function love.keypressed(key)
-- set time pressed down to 0 for key
self.keys[key] = 0.0
end
function love.keyreleased(key)
if (self.keys[key] >= 0.03) then
table.insert(self.keypresses, {key = key, time = self.keys[key], timeStamp = 0.0})
end
-- clear out keypress time
self.keys[key] = nil
if key == "escape" then
love.event.quit()
end
end
end
function Keyboard:update(timeDelta)
for keyCode, _ in pairs(self.keys) do
self.keys[keyCode] = self.keys[keyCode] + timeDelta
end
for keyCode, keyStruct in pairs(self.keypresses) do
if keyStruct.timeStamp + timeDelta > 1.0 then
table.remove(self.keypresses, keyCode)
end
end
for _, keyStruct in pairs(self.keypresses) do
keyStruct.timeStamp = keyStruct.timeStamp + timeDelta
end
end
local keyboard = {
Keyboard = Keyboard
}
return keyboard
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment