fennel_love2d_experiments/two_player_cleaning_game/map-util.fnl
Travis Shears 9a79400080
render dust fog of war
Press any key to quit" 10 10))
2026-04-06 20:42:14 +02:00

36 lines
944 B
Fennel

(local name "travis")
(local levels [
{:image-path "assets/level_002.png" :player-start [10 19] :walls []}
])
; "20 x 20 array with the outter edge set to 1 (walls) and the inner edge set to 0 (floor)"
(local empty-level
(let [level []]
(for [y 0 19 1] (table.insert level [])) ; empty rows
(each [y row (ipairs level)]
(for [x 0 19 1] (table.insert row 0)))
level
)
)
(lambda load-walls [level]
(let [image-data (love.image.newImageData (. level :image-path))]
(each [y row (ipairs (. level :walls))]
(each [x wall (ipairs row)]
(let [(r g b) (image-data:getPixel (- x 1) (- y 1))]
; (print (.. x "," y " -> " r "," g "," b))
(tset row x (if (= (.. r g b) "111") 0 1)))))))
(fn load []
"load levels"
(each [_ level (pairs levels)]
(tset level :walls empty-level)
(load-walls level))
; (print (fennel.view levels))
)
{
:load load
:levels levels
}