diff options
-rw-r--r-- | game/init.lua | 4 | ||||
-rw-r--r-- | game/polyomino.lua | 4 |
2 files changed, 5 insertions, 3 deletions
diff --git a/game/init.lua b/game/init.lua index 9872a4c..19d10ee 100644 --- a/game/init.lua +++ b/game/init.lua @@ -51,7 +51,9 @@ function M:input_loop() elseif key == "right" then self.piece:move(0, 1) elseif key == "down" then - self.piece:move(-1, 0) + local did_move = false + while self.piece:move(-1, 0) do did_move = true end + if did_move then evloop.queue "game.lock_cancel" end elseif key == "up" then if self.piece:rotate() then evloop.queue "game.lock_cancel" diff --git a/game/polyomino.lua b/game/polyomino.lua index 9d9a295..ba6da92 100644 --- a/game/polyomino.lua +++ b/game/polyomino.lua @@ -1,9 +1,9 @@ local M = {} M.__index = M -function M.def(name, shape) +function M.def(name, shape, kick_table) local new = setmetatable({name = name}, M) - + new.kick_table = kick_table or {{{0, 0}}, {{0, 0}}, {{0, 0}}, {{0, 0}}} new.cells = {} for l in shape:gmatch "[^%s]+" do local line = {} |