39 lines
892 B
Plaintext
39 lines
892 B
Plaintext
|
(local repl (require "lib.stdio"))
|
||
|
(local canvas (love.graphics.newCanvas 720 450))
|
||
|
|
||
|
(var scale 1)
|
||
|
|
||
|
;; set the first mode
|
||
|
(var mode (require "mode-intro"))
|
||
|
|
||
|
(fn set-mode [mode-name ...]
|
||
|
(set mode (require mode-name))
|
||
|
(when mode.activate
|
||
|
(mode.activate ...)))
|
||
|
|
||
|
(fn love.load []
|
||
|
(: canvas :setFilter "nearest" "nearest")
|
||
|
(repl.start))
|
||
|
|
||
|
(fn love.draw []
|
||
|
(love.graphics.setCanvas canvas)
|
||
|
(love.graphics.clear)
|
||
|
(love.graphics.setColor 1 1 1)
|
||
|
(mode.draw)
|
||
|
(love.graphics.setCanvas)
|
||
|
(love.graphics.setColor 1 1 1)
|
||
|
(love.graphics.draw canvas 0 0 0 scale scale))
|
||
|
|
||
|
(fn love.update[dt]
|
||
|
(mode.update dt set-mode)
|
||
|
)
|
||
|
|
||
|
(fn love.keypressed [key]
|
||
|
(if
|
||
|
(and (love.keyboard.isDown "lctrl" "rctrl" "capslock") (= key "q"))
|
||
|
(love.event.quit)
|
||
|
;; add what each keypress should do in each mode
|
||
|
(mode.keypressed key set-mode)
|
||
|
))
|
||
|
|