Compare commits
3 commits
70dba7ea56
...
e63a0039b6
Author | SHA1 | Date | |
---|---|---|---|
e63a0039b6 | |||
b8c1377521 | |||
7418cfeb3f |
4 changed files with 29 additions and 23 deletions
27
mapper.fnl
27
mapper.fnl
|
@ -5,6 +5,8 @@
|
|||
(var cell-num 20)
|
||||
(var (hall-width wall-width) (values 2 4))
|
||||
(var cell-size (+ hall-width wall-width))
|
||||
; (fn wall-seg [] (+ 10 (math.random 1 3)))
|
||||
(fn wall-seg [] (math.random 11 13))
|
||||
; Helper functions for dealing with the cell list
|
||||
(fn cell-row [i] (+ 1 (math.floor (/ (- i 1) cell-num))))
|
||||
(fn map-index [i]
|
||||
|
@ -37,9 +39,9 @@
|
|||
(var cell-index (+ j (* (- i 1) cell-size)))
|
||||
(if (and (< i (+ col-limit 1)) (< j (+ row-limit 1)))
|
||||
(tset cell cell-index 0)
|
||||
(tset cell cell-index 1))
|
||||
(tset cell cell-index (wall-seg)))
|
||||
(if (and (> i hall-width) (> j hall-width))
|
||||
(tset cell cell-index 1))
|
||||
(tset cell cell-index (wall-seg)))
|
||||
(if (= k leave-cell)
|
||||
(tset cell cell-index 0))))
|
||||
(table.insert cells cell))
|
||||
|
@ -113,28 +115,31 @@
|
|||
(tset cell_map new-map-index (. cells c new-cell-index)))))
|
||||
cell_map)
|
||||
|
||||
|
||||
(fn generate-north-spawn [spawn-cell]
|
||||
(var (map map-row) (values [] []))
|
||||
(for [i 1 cell-size]
|
||||
(set map-row [])
|
||||
(for [j 1 (- (* (+ 2 cell-num) cell-size) hall-width)] (table.insert map-row 1))
|
||||
(for [j 1 (- (* (+ 2 cell-num) cell-size) hall-width)]
|
||||
(table.insert map-row (wall-seg)))
|
||||
(table.insert map map-row))
|
||||
(var spawn (+ (- (* spawn-cell cell-size) (- cell-size 1)) cell-size))
|
||||
(tset map cell-size spawn 0)
|
||||
(tset map cell-size (+ spawn 1) 2)
|
||||
(tset map cell-size (- spawn 1) 2)
|
||||
(tset map (- cell-size 1) spawn 3)
|
||||
(tset map cell-size (+ spawn 1) 22)
|
||||
(tset map cell-size (- spawn 1) 22)
|
||||
(tset map (- cell-size 1) spawn 33)
|
||||
map)
|
||||
|
||||
(fn generate-south-exit [cells leave-cell]
|
||||
(var (map map-row) (values [] []))
|
||||
(for [i 1 (- cell-size hall-width)]
|
||||
(set map-row [])
|
||||
(for [j 1 (- (* (+ 2 cell-num) cell-size) hall-width)] (table.insert map-row 1))
|
||||
(for [j 1 (- (* (+ 2 cell-num) cell-size) hall-width)]
|
||||
(table.insert map-row (wall-seg)))
|
||||
(table.insert map map-row))
|
||||
(var escape (+ (* (- leave-cell (* cell-num (- cell-num 1))) cell-size) 1))
|
||||
(for [i 1 cell-size]
|
||||
(tset map 1 (+ escape (- i 1)) 3))
|
||||
(tset map 1 (+ escape (- i 1)) 33))
|
||||
map)
|
||||
|
||||
(fn generate_map [cells spawn-cell leave-cell]
|
||||
|
@ -144,14 +149,14 @@
|
|||
; Pad the east and west sides of the map
|
||||
(for [c 1 (* cell-num cell-size)]
|
||||
(var map-row [])
|
||||
(for [i 1 cell-size] (table.insert map-row 1))
|
||||
(for [i 1 cell-size] (table.insert map-row (wall-seg)))
|
||||
; (table.move cells
|
||||
; (+ (* (- c 1) (* cell-num cell-size)) 1)
|
||||
; (* c (* cell-num cell-size))
|
||||
; (+ cell-size 1) map-row)
|
||||
(for [i (+ (* (- c 1) (* cell-num cell-size)) 1) (* c (* cell-num cell-size))]
|
||||
(table.insert map-row (. cells i)))
|
||||
(for [i 1 (- cell-size hall-width)] (table.insert map-row 1))
|
||||
(for [i 1 (- cell-size hall-width)] (table.insert map-row (wall-seg)))
|
||||
(table.insert map map-row))
|
||||
; Generate the northern feature - spawn point
|
||||
(each [_ row (ipairs (generate-south-exit cells leave-cell))] (table.insert map row))
|
||||
|
@ -176,7 +181,7 @@
|
|||
(var data-maze (convert-cells meta-maze leave-cell))
|
||||
(var data-map (generate_cell_map data-maze))
|
||||
(var map (generate_map data-map spawn-cell leave-cell))
|
||||
(print_map map)
|
||||
;(print_map map)
|
||||
(values map spawn-spot))
|
||||
|
||||
; (print (.. "SPAWN: " spawn-cell "(" (. spawn-spot :x) "," (. spawn-spot :y) ")"))
|
||||
|
|
7
notes.md
7
notes.md
|
@ -180,8 +180,9 @@ Remaining tasks:
|
|||
1. Finalize map generation:
|
||||
[X] Establish starting spot, and add the northern feature spawn point.
|
||||
[X] Establish ending spot, and add the southern feature finale point.
|
||||
[ ] Could do an eastern and western spot too
|
||||
[ ] Modify the map wall values to account for random wall heights.
|
||||
[O] Modify the map wall values to account for random wall heights.
|
||||
- This "works", but the walls are all only the front of the square, so
|
||||
it looks odd.
|
||||
2. Draw floors
|
||||
3. Draw skyboxen
|
||||
3. Draw sky-boxen
|
||||
4. Add monster mechanics
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
; Draw the overlay
|
||||
; Relies on information about the player and the display
|
||||
(local player (require :state))
|
||||
(var screen-width 1280)
|
||||
(var screen-height 720)
|
||||
(var (screen-width screen-height) (love.window.getMode))
|
||||
|
||||
; This draws the oxygen ui
|
||||
; Sequential blocks, up to 10; each block 10%
|
||||
|
|
|
@ -191,7 +191,8 @@
|
|||
|
||||
; Draw textured wall
|
||||
;; Choose texture
|
||||
(var tex-num (. walls (. map mapx mapy)))
|
||||
; (var tex-num (. walls (. map mapx mapy)))
|
||||
(var tex-num (. walls (math.floor (/ (. map mapx mapy) 10))))
|
||||
;; Calculate exactly where the wall was hit
|
||||
(var wallx 0)
|
||||
(if (= side 0)
|
||||
|
@ -205,18 +206,18 @@
|
|||
;; Draw the texture, accounting for "fog"
|
||||
(var fog-dist (- 1 (/ perp-wall-dist 7)))
|
||||
(love.graphics.setColor 1 1 1 fog-dist)
|
||||
(love.graphics.draw (. tex-num :t)
|
||||
(love.graphics.newQuad tex-x 0 1 (. tex-num :h) (. tex-num :w) (. tex-num :h))
|
||||
i draw-start 0 1 (/ line-height (. tex-num :h)))
|
||||
(when (= (. map mapx mapy) 3)
|
||||
(for [q 1 3]
|
||||
; (love.graphics.draw (. tex-num :t)
|
||||
; (love.graphics.newQuad tex-x 0 1 (. tex-num :h) (. tex-num :w) (. tex-num :h))
|
||||
; i draw-start 0 1 (/ line-height (. tex-num :h)))
|
||||
; (when (= (. map mapx mapy) 3)
|
||||
(for [q 0 (% (. map mapx mapy) 10)]
|
||||
(set fog-dist (- fog-dist 0.1))
|
||||
(love.graphics.setColor 1 1 1 fog-dist)
|
||||
(love.graphics.draw (. tex-num :t)
|
||||
(love.graphics.newQuad tex-x 0 1 (. tex-num :h) (. tex-num :w) (. tex-num :h))
|
||||
i (- draw-start (* line-height q)) 0 1 (/ line-height (. tex-num :h)))
|
||||
)
|
||||
)
|
||||
; )
|
||||
)
|
||||
(overlay.overlay offst-x offst-y)
|
||||
)
|
||||
|
|
Loading…
Reference in a new issue