load map image into map data
This commit is contained in:
parent
0597b8ca56
commit
50ef6d575f
3 changed files with 41 additions and 0 deletions
BIN
two_player_cleaning_game/.DS_Store
vendored
BIN
two_player_cleaning_game/.DS_Store
vendored
Binary file not shown.
|
|
@ -1,11 +1,16 @@
|
||||||
|
(local map-util (require "map-util.fnl"))
|
||||||
|
|
||||||
(var player-sprite nil) ; 20x20 pixels
|
(var player-sprite nil) ; 20x20 pixels
|
||||||
(local game-state {
|
(local game-state {
|
||||||
:player-pos [0 0]
|
:player-pos [0 0]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
(fn love.load []
|
(fn love.load []
|
||||||
|
(map-util:load)
|
||||||
(love.window.setMode 600 640)
|
(love.window.setMode 600 640)
|
||||||
|
|
||||||
|
|
||||||
(set player-sprite (love.graphics.newImage "assets/player_001.png"))
|
(set player-sprite (love.graphics.newImage "assets/player_001.png"))
|
||||||
;; start a thread listening on stdin
|
;; start a thread listening on stdin
|
||||||
(: (love.thread.newThread "require('love.event')
|
(: (love.thread.newThread "require('love.event')
|
||||||
|
|
|
||||||
36
two_player_cleaning_game/map-util.fnl
Normal file
36
two_player_cleaning_game/map-util.fnl
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
(local name "travis")
|
||||||
|
|
||||||
|
(local levels [
|
||||||
|
{:image-path "assets/level_002.png" :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
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue