add debug grid
This commit is contained in:
parent
7432203d7b
commit
cffdeda2e9
5 changed files with 64 additions and 55 deletions
|
|
@ -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
|
|
@ -9,7 +9,7 @@
|
|||
(local dev (require "src/levels/dev.fnl"))
|
||||
|
||||
(local level dev)
|
||||
(local debug false)
|
||||
(local debug true)
|
||||
|
||||
(var pool nil)
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)))
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue