Final Bomberman movement!
This commit is contained in:
parent
02099c9461
commit
238dcee158
|
@ -16,14 +16,6 @@
|
||||||
(map.world-to-tile)
|
(map.world-to-tile)
|
||||||
(rules.tile-at)))
|
(rules.tile-at)))
|
||||||
|
|
||||||
(fn wall-collides? [x y rules]
|
|
||||||
(-?> (tile-at x y rules)
|
|
||||||
(. :wall)))
|
|
||||||
|
|
||||||
(fn bomb-collides? [x y rules]
|
|
||||||
(-?> (tile-at x y rules)
|
|
||||||
(. :bomb)))
|
|
||||||
|
|
||||||
(fn bomberman.collides? [[x y] rules]
|
(fn bomberman.collides? [[x y] rules]
|
||||||
(let [tile (tile-at x y rules)]
|
(let [tile (tile-at x y rules)]
|
||||||
(and tile (or tile.bomb tile.wall))))
|
(and tile (or tile.bomb tile.wall))))
|
||||||
|
@ -63,11 +55,12 @@
|
||||||
|
|
||||||
(fn bomberman.update [entity dt rules]
|
(fn bomberman.update [entity dt rules]
|
||||||
(set entity.vel (direct bomberman.keymap (* dim.tilesize 3)))
|
(set entity.vel (direct bomberman.keymap (* dim.tilesize 3)))
|
||||||
(local [x y] entity.pos)
|
(let [[x y] entity.pos
|
||||||
(local [dx dy] (vec* entity.vel dt))
|
[dx dy] (vec* entity.vel dt)
|
||||||
(let [[dx1 dy1] (bomberman.axis-movement (horizontal x y) x y dx rules)
|
[dx1 dy1] (bomberman.axis-movement (horizontal x y) x y dx rules)
|
||||||
[dy2 dx2] (bomberman.axis-movement (vertical x y) y x dy rules)]
|
[dy2 dx2] (bomberman.axis-movement (vertical x y) y x dy rules)
|
||||||
(set entity.pos [(+ x dx1 dx2) (+ y dy1 dy2)]))
|
[dx dy] (if (not= dx 0) [dx1 dy1] [dx2 dy2])]
|
||||||
|
(set entity.pos [(+ x dx) (+ y dy)]))
|
||||||
(when (love.keyboard.isDown bomberman.keymap.bomb)
|
(when (love.keyboard.isDown bomberman.keymap.bomb)
|
||||||
(rules.place-bomb (map.world-to-tile entity.pos))))
|
(rules.place-bomb (map.world-to-tile entity.pos))))
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue