Compare commits

..

No commits in common. "6b2980ffe6ddbfb3cc4444b1f7841d94920ea138" and "d8c17c429eef3c352239b1d1350ea7091afe672e" have entirely different histories.

5 changed files with 6773 additions and 46 deletions

6767
one_line/fennel.lua Normal file

File diff suppressed because one or more lines are too long

View file

@ -3,9 +3,6 @@
(local canvas-h (* scale 31)) (local canvas-h (* scale 31))
(local canvas-x (* -1 (/ canvas-w 2))) (local canvas-x (* -1 (/ canvas-w 2)))
(local canvas-y (* -1 (/ canvas-h 2))) (local canvas-y (* -1 (/ canvas-h 2)))
(local app-state {
:mode :draw ; draw or preview
})
(local theme { (local theme {
:white (lambda [cb] (cb (love.math.colorFromBytes 247 246 246))) :white (lambda [cb] (cb (love.math.colorFromBytes 247 246 246)))
:black (lambda [cb] (cb (love.math.colorFromBytes 60 54 51))) :black (lambda [cb] (cb (love.math.colorFromBytes 60 54 51)))
@ -21,16 +18,14 @@
; setup pixels for image that we are drawing ; setup pixels for image that we are drawing
(var pixel-canvas nil) (var pixel-canvas nil)
(local pixels { (local pixels {})
:export-ordered-keys [] (tset pixels :ordered-keys [])
:drawn-ordered-keys [] (tset pixels :cords {})
:cords {}
})
(for [y 1 31] (for [y 1 31]
(for [x 1 88] (for [x 1 88]
(let [key (.. x "," y)] (let [key (.. x "," y)]
(tset pixels.cords key {: x : y :val false}) (tset pixels.cords key {: x : y :val false})
(table.insert pixels.export-ordered-keys key)))) (table.insert pixels.ordered-keys key))))
(fn draw-canvases [] (fn draw-canvases []
"Draw main drawing canvas and preview canvas to screen" "Draw main drawing canvas and preview canvas to screen"
@ -60,10 +55,8 @@
key (.. x "," y) key (.. x "," y)
] ]
(tset (. pixels.cords key) :val true) (tset (. pixels.cords key) :val true)
(table.insert pixels.drawn-ordered-keys key)
(update-canvas) (update-canvas)
; (print (.. x "," y)) (print (.. x "," y))))))
))))
(fn love.load [] (fn love.load []
;; 480p 720×480 ;; 480p 720×480
@ -89,19 +82,6 @@ while 1 do love.event.push('stdin', io.read('*line')) end") :start))
; preview outline and text ; preview outline and text
(love.graphics.print "Preview:" canvas-x (- canvas-y 80)) (love.graphics.print "Preview:" canvas-x (- canvas-y 80))
(love.graphics.rectangle "line" canvas-x (- canvas-y 60) 89 32) (love.graphics.rectangle "line" canvas-x (- canvas-y 60) 89 32)
; future preview outlines and text
(for [i 0 4]
(let [
gap (/ (- canvas-w (* 5 89)) 4)
txt (case i
0 "After 1 day"
1 "After 2 days"
2 "After 3 days"
3 "After 4 days"
4 "After 5 days")]
(love.graphics.print txt (+ (* i (+ 89 gap)) canvas-x) (+ (+ 20 canvas-h) canvas-y))
(love.graphics.rectangle "line" (+ (* i (+ 89 gap)) canvas-x) (+ (+ 40 canvas-h) canvas-y) 89 32)))
) )
(fn love.draw [] (fn love.draw []
@ -112,8 +92,5 @@ while 1 do love.event.push('stdin', io.read('*line')) end") :start))
(draw-canvases) (draw-canvases)
(love.graphics.pop)) (love.graphics.pop))
(fn love.keypressed [key] ; (fn love.keypressed [key]
(match key
"d" (tset app-state :mode "draw")
"p" (tset app-state :mode "preview")))
; (love.event.quit)) ; (love.event.quit))

View file

@ -1 +0,0 @@
/Users/she0001t/personal_projects/fennel_love2d_experiments/fennel-1.5.3.lua

View file

@ -1,15 +0,0 @@
(fn love.load []
;; 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))))
(fn love.draw []
(love.graphics.print "Hello from Fennel!\nPress any key to quit" 10 10))
(fn love.keypressed [key]
(love.event.quit))

View file

@ -1 +0,0 @@
/Users/she0001t/personal_projects/fennel_love2d_experiments/fennel_bootstrap.lua