add debug grid

This commit is contained in:
Travis Shears 2026-04-28 21:46:53 +02:00
parent 7432203d7b
commit cffdeda2e9
Signed by: travisshears
GPG key ID: CB9BF1910F3F7469
5 changed files with 64 additions and 55 deletions

View file

@ -13,7 +13,7 @@
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2147483651,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,3,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2147483651,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,

File diff suppressed because one or more lines are too long

View file

@ -9,7 +9,7 @@
(local dev (require "src/levels/dev.fnl"))
(local level dev)
(local debug false)
(local debug true)
(var pool nil)

View file

@ -8,62 +8,48 @@
(lambda fow.load [self]
(set self.canvas (love.graphics.newCanvas 100 100))
; self.pool.data.screen.canvas-w self.pool.data.screen.canvas-h))
; (love.graphics.setCanvas {:canvas self.canvas :stencil true})
; (love.graphics.setCanvas self.canvas)
; (love.graphics.push)
; (love.graphics.origin)
; (color.set-color :black)
; (love.graphics.rectangle "fill" 50 50 300 100)
; (color.set-color :white)
; (love.graphics.rectangle "fill" 150 50 100 100)
; (love.graphics.pop)
; (love.graphics.setCanvas)
; ()
; (fn draw-mask []
; (color.set-color :black)
; (love.graphics.rectangle :fill 0 0 self.pool.data.screen.canvas-w self.pool.data.screen.canvas-h)
; (color.set-color :white)
; (love.graphics.circle :fill 300 300 150 150))
; (love.graphics.stencil draw-mask :replace 1)
; (love.graphics.setStencilTest :greater 0)
; (color.set-color :dark-purple)
; (love.graphics.rectangle :fill 0 0 self.pool.data.screen.canvas-w self.pool.data.screen.canvas-h)
; (love.graphics.setStencilTest)
; (love.graphics.draw self.canvas 0 0 0 self.pool.data.screen.scale self.pool.data.screen.scale)
(let [tiles (. levels :levels self.pool.data.level-key :tiles)
rows-of-tiles (length tiles)
cols-of-tiles (length (. tiles 1))
rows (+ 200 rows-of-tiles) ; 100 rows of padding above the tiles
cols (+ 200 cols-of-tiles) ; 100 cols of padding on the sides
x (- 0 (* 25 100)) ; offset 100 tiles left
y (- 0 (* 25 100)) ; offset 100 tiles up
rows (length tiles)
cols (length (. tiles 1))
x 0
y 0
w (* 25 cols) ; width of the level in pixels
h (* 25 rows) ; height of the level in pixels
]
(for [row 0 rows]
(for [col 0 cols]
(table.insert self.cells {:x (+ x (* col 25)) :y (+ y (* row 25))})))
(each [_ cell (pairs self.cells)]
(set cell.hit false)
(lambda cell.on-hit [cell-self]
(set cell-self.hit true))
(self.pool.data.bump-world:add cell cell.x cell.y 25 25))))
(lambda fow.draw80 [self]
(love.graphics.push)
(love.graphics.origin)
(utils.debug-print {:rows rows :cols cols :x x :y y :w w :h h})
(set self.x x)
(set self.y y)
(love.graphics.setCanvas self.canvas)
(color.set-color :dark-purple)
(love.graphics.rectangle "fill" 0 0 250 250)
(love.graphics.setColor 0 0 0 0)
(love.graphics.setBlendMode "replace")
(love.graphics.circle "fill" 25 25 20)
(love.graphics.setBlendMode "alpha")
(love.graphics.setCanvas self.pool.data.canvas)
(love.graphics.rectangle "fill" x y w h)
(love.graphics.setCanvas)))
; (for [row 0 rows]
; (for [col 0 cols]
; (table.insert self.cells {:x (+ x (* col 25)) :y (+ y (* row 25))})))
; (each [_ cell (pairs self.cells)]
; (set cell.hit false)
; (lambda cell.on-hit [cell-self]
; (set cell-self.hit true))
; (self.pool.data.bump-world:add cell cell.x cell.y 25 25))))
(lambda fow.draw80 [self]
; (love.graphics.push)
; (love.graphics.origin)
; (love.graphics.setCanvas self.canvas)
; (color.set-color :dark-purple)
; (love.graphics.rectangle "fill" 0 0 250 250)
; (love.graphics.setColor 0 0 0 0)
; (love.graphics.setBlendMode "replace")
; (love.graphics.circle "fill" 25 25 20)
; (love.graphics.setBlendMode "alpha")
; (love.graphics.setCanvas self.pool.data.canvas)
(color.reset-color)
(love.graphics.draw self.canvas 50 50)
(love.graphics.pop)
; (love.graphics.draw self.canvas self.x self.y )
(love.graphics.draw self.canvas self.x self.y 0 2 2)
; (love.graphics.pop)
)
fow

View file

@ -6,6 +6,7 @@
:quads []
:batch nil
:collider-debug-boxes []
:debug-grid-canvas nil
})
(lambda mirror-collider [collider]
@ -18,6 +19,17 @@
:height collider.height
})
(fn draw-debug-grid []
(let [f (love.graphics.newFont 6)]
(love.graphics.setFont f)
(for [x 0 100 1]
(for [y 0 100 1]
(let [x1 (* x 100)
y1 (* y 100)]
(love.graphics.line x1 y1 (+ x1 1000) y1)
(love.graphics.line x1 y1 x1 (+ y1 1000))
(love.graphics.print (.. (string.format "%d" x1) "," (string.format "%d" y1)) (+ x1 3) (+ y1 3)))))))
(fn walls.load [self]
(set self.batch (love.graphics.newSpriteBatch assets.walls-sprite 2500))
;; load quads
@ -43,15 +55,26 @@
(self.pool.data.bump-world:add {: x : y :name :wall :behavior :block} collider-x collider-y mirrored-collider.width mirrored-collider.height)
(table.insert
self.collider-debug-boxes
{:x collider-x :y collider-y :width mirrored-collider.width :height mirrored-collider.height})))))))))
{:x collider-x :y collider-y :width mirrored-collider.width :height mirrored-collider.height}))))))))
(set self.debug-grid-canvas (love.graphics.newCanvas 1000 1000))
(love.graphics.setCanvas self.debug-grid-canvas)
(draw-debug-grid)
(love.graphics.setCanvas)
)
(fn walls.draw49 [self]
(color.reset-color)
(love.graphics.draw self.batch))
(fn walls.draw-debug [self]
"draw collider debug boxes"
(color.set-color :black)
; (draw-debug-grid)
(love.graphics.draw self.debug-grid-canvas 0 0)
(each [_ collider (pairs self.collider-debug-boxes)]
(love.graphics.rectangle "line" collider.x collider.y collider.width collider.height)))