From a845fe1582676028a963a6488ec2cd72b7d346cd Mon Sep 17 00:00:00 2001 From: Travis Shears Date: Sat, 5 Jul 2025 15:37:14 +0200 Subject: [PATCH] start coding one line canvas --- one_line/main.fnl | 59 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 one_line/main.fnl diff --git a/one_line/main.fnl b/one_line/main.fnl new file mode 100644 index 0000000..b6d5782 --- /dev/null +++ b/one_line/main.fnl @@ -0,0 +1,59 @@ + +(tset _G :img-width 88) +(tset _G :img-height 31) + +(local scale 6) +(tset _G :canvas-width (* scale (. _G :img-width))) +(tset _G :canvas-height (* scale (. _G :img-height))) + +(lambda set-center-origin [] + (let [(w h f) (love.window.getMode) + x (/ w 2) + y (/ h 2) + ] + ; (print (.. "setting orgin to middle of window: " x "," y)) + (love.graphics.push) + (love.graphics.translate x y))) + +(fn love.load [] + ;; 480p 720×480 + (love.window.setMode 720 480) + ; (set-center-origin) + ; (love.graphics.pop) + + + ;; start a thread listening on stdin + (: (love.thread.newThread "require('love.event') +while 1 do love.event.push('stdin', io.read('*line')) end") :start)) + +(fn love.handlers.stdin [line] + ; evaluate lines read from stdin as fennel code + (let [(ok val) (pcall fennel.eval line)] + (print (if ok (fennel.view val) val)))) + + +(lambda draw-static-bg [] + (let [ + canvas-w (* scale 88) + canvas-h (* scale 31) + canvas-x (* -1 (/ canvas-w 2)) + canvas-y (* -1 (/ canvas-h 2)) + ] + ; canvas + (love.graphics.print "Canvas:" canvas-x (- canvas-y 20)) + (love.graphics.rectangle "line" canvas-x canvas-y canvas-w canvas-h) + ; preview + (love.graphics.print "Preview:" canvas-x (- canvas-y 80)) + (love.graphics.rectangle "line" canvas-x (- canvas-y 60) 89 32) + ) +) + +(fn love.draw [] + (set-center-origin) + (love.graphics.setBackgroundColor (love.math.colorFromBytes 192 192 192)) + (love.graphics.setColor (love.math.colorFromBytes 29 29 29)) + (draw-static-bg) + (love.graphics.pop)) + +(fn love.keypressed [key] + (love.event.quit))