summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorheav <hheav3@gmail.com>2023-03-26 10:48:29 +0000
committerheav <hheav3@gmail.com>2023-03-26 10:48:29 +0000
commit9cd399d27319fb9e3eaee79fec59660446df10b5 (patch)
treedb66cc1ef08346c19a6de9bce876dfc683b699dd
parentd0d7f7bf94b3c4c7156d8054b767ac84e91d17d4 (diff)
piece drawing generalization.
-rw-r--r--game/gfx.lua19
1 files changed, 9 insertions, 10 deletions
diff --git a/game/gfx.lua b/game/gfx.lua
index 0f64ddc..4f6ce11 100644
--- a/game/gfx.lua
+++ b/game/gfx.lua
@@ -72,14 +72,18 @@ function M:draw_tetromino(tetromino, x, y, block_size, trim_margins)
end
end
-local function debug_mark(x,y,...)
- love.graphics.setColor(...)
- love.graphics.rectangle("fill",x-1,y-1,3,3)
+function M:draw_tetromino_confined(tetromino, x, y, sidelength, margin)
+ local dim = math.max(tetromino.width, tetromino.height)
+ local block_size = sidelength/3
+ local scale = 3/math.max(dim, 3)
+ local tetr_x = x + margin/2 + (3-tetromino.width*scale)/2 * block_size
+ local tetr_y = y + margin/2 + (3-tetromino.height*scale)/2 * block_size
+ self:draw_tetromino(tetromino, tetr_x, tetr_y, scale * block_size, true)
end
function M:draw_hold()
local block_size, field_x, field_y, field_w, field_h = self:field_dimensions()
- local hold_x = field_x + field_w + block_size
+ local hold_x = field_x - block_size - block_size/2 - block_size*3/2
local hold_y = field_y
local margin = block_size/2
love.graphics.setColor(0, 0, 0)
@@ -89,12 +93,7 @@ function M:draw_hold()
love.graphics.rectangle("fill", hold_x, hold_y, block_size*1.5 + margin, block_size*1.5 + margin)
end
if not self.game.hold then return end
- local piece = self.game.hold
- local piece_dim = math.max(piece.width, piece.height)
- local piece_scale = 3/math.max(piece_dim, 3)
- local piece_x = hold_x + margin/2 + (3-piece.width*piece_scale)/2 * block_size/2
- local piece_y = hold_y + margin/2 + (3-piece.height*piece_scale)/2 * block_size/2
- self:draw_tetromino(self.game.hold, piece_x, piece_y, piece_scale * block_size/2, true)
+ self:draw_tetromino_confined(self.game.hold, hold_x, hold_y, block_size*3/2, margin)
end
function M:draw_piece()