|_| Ports for reading and writing events |#state| { event_args = {} , dt = 0 } |#port, on start polling, needs, @start polling| |#port body, on start polling, Lua| love.event.pump() self.state.event_iter = love.event.poll() |#port, on poll input, needs, @poll input| , @event keypressed , @event keyreleased , @event mousemoved , @event mouse pressed , @no events left |#port body, on poll input, Lua| local name, a, b, c, d, e, f = self.state.event_iter() if name then local counter = "@event " .. name if counters[counter] then counters[counter] = 1 self.state.event_args[1] = a self.state.event_args[2] = b self.state.event_args[3] = c self.state.event_args[4] = d self.state.event_args[5] = e self.state.event_args[6] = f end else counters["@no events left"] = 1 end |#port, on quit love, needs, @quit love| @exit code |#port body, on quit love, Lua| counters["@exit code"] = self.state.event_args[1] or |#port, on step timer, needs, @step timer| |#port body, on step timer, Lua| self.state.dt = love.timer.step() |#port, on clear screen, needs, @clear screen| |#port body, on clear screen, Lua| love.graphics.origin() love.graphics.clear(love.graphics.getBackgroundColor()) |#port, on present, needs, @present| |#port body, on present, Lua| love.graphics.present() |#port, on sleep, needs, @sleep, takes, @ms| |#port body, on sleep, Lua| love.timer.sleep(ms / 1000) |_| Dummy event handlers |handling input| |updating scene| |drawing scene| |_| The main application loop |run main loop| , start polling inputs , poll input , handle input , run current frame |start polling inputs| , @start polling |poll input| , @poll input |handle input, @no events left| |handle input| , handling input , poll input , handle input |run current frame, @event quit| , @quit love |run current frame| , step timer , clear the screen , update scene state , draw scene , present current frame , sleep for 1ms , next cycle | step timer | @step timer | clear the screen | @clear screen | update scene state | updating scene | draw scene | drawing scene | present current frame | @present | sleep for 1ms | @ms | next cycle | run main loop