current piece
This commit is contained in:
parent
60a853fc7c
commit
914731713a
|
@ -19,8 +19,13 @@
|
||||||
(set state.update-exception (.. msg "\n" (debug.traceback)))))))
|
(set state.update-exception (.. msg "\n" (debug.traceback)))))))
|
||||||
|
|
||||||
(fn game-draw []
|
(fn game-draw []
|
||||||
(map.draw-tilemap (* dim.tilesize 5) 0 state.well tiles.tetristile)
|
(let [xnext (/ dim.tilesize 2)
|
||||||
(map.draw-tilemap (/ dim.tilesize 2) dim.tilesize (rules.tetromino state.next-piece 1) tiles.tetristile))
|
xwell (* dim.tilesize 5)
|
||||||
|
current (rules.current-tetromino)]
|
||||||
|
(map.draw-tilemap xwell 0 state.well tiles.tetristile)
|
||||||
|
(map.draw-tilemap xnext dim.tilesize (rules.tetromino state.next-piece 1) tiles.tetristile)
|
||||||
|
(when current
|
||||||
|
(map.draw-tilemap (+ xwell (* state.current.x dim.tilesize)) (* state.current.y dim.tilesize) current tiles.tetristile))))
|
||||||
|
|
||||||
(fn exception-draw []
|
(fn exception-draw []
|
||||||
(love.graphics.setColor 1 0 0 1)
|
(love.graphics.setColor 1 0 0 1)
|
||||||
|
|
|
@ -77,6 +77,11 @@
|
||||||
ivalue (love.math.random (length possible-values))]
|
ivalue (love.math.random (length possible-values))]
|
||||||
(. possible-values ivalue)))
|
(. possible-values ivalue)))
|
||||||
|
|
||||||
|
(fn Rules.tetromino [k irotation]
|
||||||
|
(let [rotations (or (. state.tetrominoes k) [["##" "##"]])
|
||||||
|
irotation (+ (% (- irotation 1) (length rotations)) 1)]
|
||||||
|
(. rotations irotation)))
|
||||||
|
|
||||||
(fn Rules.reset-game []
|
(fn Rules.reset-game []
|
||||||
(set state.tetrominoes tetrominoes)
|
(set state.tetrominoes tetrominoes)
|
||||||
(set state.well (map.new-tilemap 12 21))
|
(set state.well (map.new-tilemap 12 21))
|
||||||
|
@ -85,12 +90,18 @@
|
||||||
(map.set-itile-at 11 y state.well "X"))
|
(map.set-itile-at 11 y state.well "X"))
|
||||||
(for [x 0 11]
|
(for [x 0 11]
|
||||||
(map.set-itile-at x 20 state.well "X"))
|
(map.set-itile-at x 20 state.well "X"))
|
||||||
(set state.next-piece (Rules.choose-random-tetromino)))
|
(set state.drop-ms 750)
|
||||||
|
(Rules.play-next-piece))
|
||||||
|
|
||||||
(fn Rules.tetromino [k irotation]
|
(fn Rules.play-next-piece []
|
||||||
(let [rotations (or (. state.tetrominoes k) [["##" "##"]])
|
(let [piece (or state.next-piece (Rules.choose-random-tetromino))
|
||||||
irotation (+ (% (- irotation 1) (length rotations)) 1)]
|
x (/ (- (length (. state.well 1)) 2) 2)]
|
||||||
(. rotations irotation)))
|
(set state.current {: piece : x :y 0 :irotation 1})
|
||||||
|
(set state.next-piece (Rules.choose-random-tetromino))))
|
||||||
|
|
||||||
|
(fn Rules.current-tetromino []
|
||||||
|
(when state.current
|
||||||
|
(Rules.tetromino state.current.piece state.current.irotation)))
|
||||||
|
|
||||||
Rules
|
Rules
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue