Skip to content

Instantly share code, notes, and snippets.

@radgeRayden
Created January 11, 2019 07:32
Show Gist options
  • Save radgeRayden/203e74cb4916ecec3ec35ec1e76fa24b to your computer and use it in GitHub Desktop.
Save radgeRayden/203e74cb4916ecec3ec35ec1e76fa24b to your computer and use it in GitHub Desktop.
fennel love.run
(fn love.run []
(if love.load
(love.load (love.arg.parseGameArguments arg) arg))
(if love.timer
(love.timer.step))
(var dt 0)
(fn []
(when love.event
(love.event.pump)
(each [name a b c d e f (love.event.poll)]
(if (= name "quit")
(if (or (not love.quit) (not (love.quit))) (or a 0)))
((. love.handlers name) a b c d e f)
)
)
(if love.timer (set dt (love.timer.step)))
(if love.update (love.update dt))
(when (and love.graphics (love.graphics.isActive))
(love.graphics.origin)
(love.graphics.clear (love.graphics.getBackgroundColor))
(if love.draw (love.draw))
(love.graphics.present)
)
(if love.timer (love.timer.sleep 0.001))
)
)
function love.run()
if love.load then love.load(love.arg.parseGameArguments(arg), arg) end
-- We don't want the first frame's dt to include time taken by love.load.
if love.timer then love.timer.step() end
local dt = 0
-- Main loop time.
return function()
-- Process events.
if love.event then
love.event.pump()
for name, a,b,c,d,e,f in love.event.poll() do
if name == "quit" then
if not love.quit or not love.quit() then
return a or 0
end
end
love.handlers[name](a,b,c,d,e,f)
end
end
-- Update dt, as we'll be passing it to update
if love.timer then dt = love.timer.step() end
-- Call update and draw
if love.update then love.update(dt) end -- will pass 0 if love.timer is disabled
if love.graphics and love.graphics.isActive() then
love.graphics.origin()
love.graphics.clear(love.graphics.getBackgroundColor())
if love.draw then love.draw() end
love.graphics.present()
end
if love.timer then love.timer.sleep(0.001) end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment