Compare commits
2 commits
d8c17c429e
...
6b2980ffe6
| Author | SHA1 | Date | |
|---|---|---|---|
| 6b2980ffe6 | |||
| 050c02b3b0 |
5 changed files with 46 additions and 6773 deletions
6767
one_line/fennel.lua
6767
one_line/fennel.lua
File diff suppressed because one or more lines are too long
|
|
@ -3,6 +3,9 @@
|
||||||
(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)))
|
||||||
|
|
@ -18,14 +21,16 @@
|
||||||
|
|
||||||
; 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 {
|
||||||
(tset pixels :ordered-keys [])
|
:export-ordered-keys []
|
||||||
(tset pixels :cords {})
|
:drawn-ordered-keys []
|
||||||
|
: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.ordered-keys key))))
|
(table.insert pixels.export-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"
|
||||||
|
|
@ -55,8 +60,10 @@
|
||||||
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
|
||||||
|
|
@ -82,6 +89,19 @@ 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 []
|
||||||
|
|
@ -92,5 +112,8 @@ 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))
|
||||||
|
|
|
||||||
1
two_player_cleaning_game/fennel.lua
Symbolic link
1
two_player_cleaning_game/fennel.lua
Symbolic link
|
|
@ -0,0 +1 @@
|
||||||
|
/Users/she0001t/personal_projects/fennel_love2d_experiments/fennel-1.5.3.lua
|
||||||
15
two_player_cleaning_game/main.fnl
Normal file
15
two_player_cleaning_game/main.fnl
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
(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))
|
||||||
1
two_player_cleaning_game/main.lua
Symbolic link
1
two_player_cleaning_game/main.lua
Symbolic link
|
|
@ -0,0 +1 @@
|
||||||
|
/Users/she0001t/personal_projects/fennel_love2d_experiments/fennel_bootstrap.lua
|
||||||
Loading…
Add table
Add a link
Reference in a new issue