Compare commits

..

No commits in common. "e63a0039b6ab52944b1ae882e68fbf28a3255826" and "70dba7ea5693f7ba7d494d74ddc7308c073311ad" have entirely different histories.

4 changed files with 23 additions and 29 deletions

View file

@ -5,8 +5,6 @@
(var cell-num 20) (var cell-num 20)
(var (hall-width wall-width) (values 2 4)) (var (hall-width wall-width) (values 2 4))
(var cell-size (+ hall-width wall-width)) (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 ; Helper functions for dealing with the cell list
(fn cell-row [i] (+ 1 (math.floor (/ (- i 1) cell-num)))) (fn cell-row [i] (+ 1 (math.floor (/ (- i 1) cell-num))))
(fn map-index [i] (fn map-index [i]
@ -39,9 +37,9 @@
(var cell-index (+ j (* (- i 1) cell-size))) (var cell-index (+ j (* (- i 1) cell-size)))
(if (and (< i (+ col-limit 1)) (< j (+ row-limit 1))) (if (and (< i (+ col-limit 1)) (< j (+ row-limit 1)))
(tset cell cell-index 0) (tset cell cell-index 0)
(tset cell cell-index (wall-seg))) (tset cell cell-index 1))
(if (and (> i hall-width) (> j hall-width)) (if (and (> i hall-width) (> j hall-width))
(tset cell cell-index (wall-seg))) (tset cell cell-index 1))
(if (= k leave-cell) (if (= k leave-cell)
(tset cell cell-index 0)))) (tset cell cell-index 0))))
(table.insert cells cell)) (table.insert cells cell))
@ -115,31 +113,28 @@
(tset cell_map new-map-index (. cells c new-cell-index))))) (tset cell_map new-map-index (. cells c new-cell-index)))))
cell_map) cell_map)
(fn generate-north-spawn [spawn-cell] (fn generate-north-spawn [spawn-cell]
(var (map map-row) (values [] [])) (var (map map-row) (values [] []))
(for [i 1 cell-size] (for [i 1 cell-size]
(set map-row []) (set map-row [])
(for [j 1 (- (* (+ 2 cell-num) cell-size) hall-width)] (for [j 1 (- (* (+ 2 cell-num) cell-size) hall-width)] (table.insert map-row 1))
(table.insert map-row (wall-seg)))
(table.insert map map-row)) (table.insert map map-row))
(var spawn (+ (- (* spawn-cell cell-size) (- cell-size 1)) cell-size)) (var spawn (+ (- (* spawn-cell cell-size) (- cell-size 1)) cell-size))
(tset map cell-size spawn 0) (tset map cell-size spawn 0)
(tset map cell-size (+ spawn 1) 22) (tset map cell-size (+ spawn 1) 2)
(tset map cell-size (- spawn 1) 22) (tset map cell-size (- spawn 1) 2)
(tset map (- cell-size 1) spawn 33) (tset map (- cell-size 1) spawn 3)
map) map)
(fn generate-south-exit [cells leave-cell] (fn generate-south-exit [cells leave-cell]
(var (map map-row) (values [] [])) (var (map map-row) (values [] []))
(for [i 1 (- cell-size hall-width)] (for [i 1 (- cell-size hall-width)]
(set map-row []) (set map-row [])
(for [j 1 (- (* (+ 2 cell-num) cell-size) hall-width)] (for [j 1 (- (* (+ 2 cell-num) cell-size) hall-width)] (table.insert map-row 1))
(table.insert map-row (wall-seg)))
(table.insert map map-row)) (table.insert map map-row))
(var escape (+ (* (- leave-cell (* cell-num (- cell-num 1))) cell-size) 1)) (var escape (+ (* (- leave-cell (* cell-num (- cell-num 1))) cell-size) 1))
(for [i 1 cell-size] (for [i 1 cell-size]
(tset map 1 (+ escape (- i 1)) 33)) (tset map 1 (+ escape (- i 1)) 3))
map) map)
(fn generate_map [cells spawn-cell leave-cell] (fn generate_map [cells spawn-cell leave-cell]
@ -149,14 +144,14 @@
; Pad the east and west sides of the map ; Pad the east and west sides of the map
(for [c 1 (* cell-num cell-size)] (for [c 1 (* cell-num cell-size)]
(var map-row []) (var map-row [])
(for [i 1 cell-size] (table.insert map-row (wall-seg))) (for [i 1 cell-size] (table.insert map-row 1))
; (table.move cells ; (table.move cells
; (+ (* (- c 1) (* cell-num cell-size)) 1) ; (+ (* (- c 1) (* cell-num cell-size)) 1)
; (* c (* cell-num cell-size)) ; (* c (* cell-num cell-size))
; (+ cell-size 1) map-row) ; (+ cell-size 1) map-row)
(for [i (+ (* (- c 1) (* cell-num cell-size)) 1) (* c (* cell-num cell-size))] (for [i (+ (* (- c 1) (* cell-num cell-size)) 1) (* c (* cell-num cell-size))]
(table.insert map-row (. cells i))) (table.insert map-row (. cells i)))
(for [i 1 (- cell-size hall-width)] (table.insert map-row (wall-seg))) (for [i 1 (- cell-size hall-width)] (table.insert map-row 1))
(table.insert map map-row)) (table.insert map map-row))
; Generate the northern feature - spawn point ; Generate the northern feature - spawn point
(each [_ row (ipairs (generate-south-exit cells leave-cell))] (table.insert map row)) (each [_ row (ipairs (generate-south-exit cells leave-cell))] (table.insert map row))
@ -181,7 +176,7 @@
(var data-maze (convert-cells meta-maze leave-cell)) (var data-maze (convert-cells meta-maze leave-cell))
(var data-map (generate_cell_map data-maze)) (var data-map (generate_cell_map data-maze))
(var map (generate_map data-map spawn-cell leave-cell)) (var map (generate_map data-map spawn-cell leave-cell))
;(print_map map) (print_map map)
(values map spawn-spot)) (values map spawn-spot))
; (print (.. "SPAWN: " spawn-cell "(" (. spawn-spot :x) "," (. spawn-spot :y) ")")) ; (print (.. "SPAWN: " spawn-cell "(" (. spawn-spot :x) "," (. spawn-spot :y) ")"))

View file

@ -180,9 +180,8 @@ Remaining tasks:
1. Finalize map generation: 1. Finalize map generation:
[X] Establish starting spot, and add the northern feature spawn point. [X] Establish starting spot, and add the northern feature spawn point.
[X] Establish ending spot, and add the southern feature finale point. [X] Establish ending spot, and add the southern feature finale point.
[O] Modify the map wall values to account for random wall heights. [ ] Could do an eastern and western spot too
- This "works", but the walls are all only the front of the square, so [ ] Modify the map wall values to account for random wall heights.
it looks odd.
2. Draw floors 2. Draw floors
3. Draw sky-boxen 3. Draw skyboxen
4. Add monster mechanics 4. Add monster mechanics

View file

@ -1,7 +1,8 @@
; Draw the overlay ; Draw the overlay
; Relies on information about the player and the display ; Relies on information about the player and the display
(local player (require :state)) (local player (require :state))
(var (screen-width screen-height) (love.window.getMode)) (var screen-width 1280)
(var screen-height 720)
; This draws the oxygen ui ; This draws the oxygen ui
; Sequential blocks, up to 10; each block 10% ; Sequential blocks, up to 10; each block 10%

View file

@ -191,8 +191,7 @@
; Draw textured wall ; Draw textured wall
;; Choose texture ;; 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 ;; Calculate exactly where the wall was hit
(var wallx 0) (var wallx 0)
(if (= side 0) (if (= side 0)
@ -206,18 +205,18 @@
;; Draw the texture, accounting for "fog" ;; Draw the texture, accounting for "fog"
(var fog-dist (- 1 (/ perp-wall-dist 7))) (var fog-dist (- 1 (/ perp-wall-dist 7)))
(love.graphics.setColor 1 1 1 fog-dist) (love.graphics.setColor 1 1 1 fog-dist)
; (love.graphics.draw (. tex-num :t) (love.graphics.draw (. tex-num :t)
; (love.graphics.newQuad tex-x 0 1 (. tex-num :h) (. tex-num :w) (. tex-num :h)) (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))) i draw-start 0 1 (/ line-height (. tex-num :h)))
; (when (= (. map mapx mapy) 3) (when (= (. map mapx mapy) 3)
(for [q 0 (% (. map mapx mapy) 10)] (for [q 1 3]
(set fog-dist (- fog-dist 0.1)) (set fog-dist (- fog-dist 0.1))
(love.graphics.setColor 1 1 1 fog-dist) (love.graphics.setColor 1 1 1 fog-dist)
(love.graphics.draw (. tex-num :t) (love.graphics.draw (. tex-num :t)
(love.graphics.newQuad tex-x 0 1 (. tex-num :h) (. tex-num :w) (. tex-num :h)) (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))) i (- draw-start (* line-height q)) 0 1 (/ line-height (. tex-num :h)))
) )
; ) )
) )
(overlay.overlay offst-x offst-y) (overlay.overlay offst-x offst-y)
) )