luncher/src/systems/input.lua

19 lines
871 B
Lua

---@alias InputState { upJustPressed: boolean, downJustPressed: boolean, rightJustPressed: boolean, leftJustPressed: boolean, aJustPressed: boolean, bJustPressed: boolean }
local buttonJustPressed = playdate.buttonJustPressed
local inputState = {}
inputSystem = filteredSystem("input", { canReceiveInput = T.marker }, function(e, _, system)
e.inputState = inputState
system.world:addEntity(e)
end)
function inputSystem:preProcess()
inputState.upJustPressed = buttonJustPressed(playdate.kButtonUp)
inputState.downJustPressed = buttonJustPressed(playdate.kButtonDown)
inputState.rightJustPressed = buttonJustPressed(playdate.kButtonRight)
inputState.leftJustPressed = buttonJustPressed(playdate.kButtonLeft)
inputState.aJustPressed = buttonJustPressed(playdate.kButtonA)
inputState.bJustPressed = buttonJustPressed(playdate.kButtonB)
end