diff --git a/src/main.lua b/src/main.lua index 063c9c5..0447c1c 100644 --- a/src/main.lua +++ b/src/main.lua @@ -1014,7 +1014,7 @@ function playdate.update() drawMinimap() end drawScoreboard(0, Screen.H * 0.77, teams, outs, battingTeam, inning) - drawBallsAndStrikes(300, Screen.H * 0.77, balls, strikes) + drawBallsAndStrikes(290, Screen.H - 20, balls, strikes) announcer:draw(Center.x, 10) end diff --git a/src/scoreboard.lua b/src/scoreboard.lua index bd31553..c4827e9 100644 --- a/src/scoreboard.lua +++ b/src/scoreboard.lua @@ -6,6 +6,10 @@ local ScoreboardHeight = 55 local Indicator = "> " local IndicatorWidth = ScoreFont:getTextWidth(Indicator) +local BallStrikeMarginY = 4 +local BallStrikeWidth = 60 +local BallStrikeHeight = (BallStrikeMarginY * 2) + ScoreFont:getHeight() + ---@param teams any ---@param battingTeam any ---@return string, number, string, number @@ -17,10 +21,21 @@ function getIndicators(teams, battingTeam) end function drawBallsAndStrikes(x, y, balls, strikes) + if balls == 0 and strikes == 0 then + return + end + local gfx = playdate.graphics - print("" .. balls .. " - " .. strikes) gfx.setColor(gfx.kColorBlack) - gfx.fillRect(x, y, 20, ScoreboardHeight) + gfx.fillRect(x, y, BallStrikeWidth, BallStrikeHeight) + local originalDrawMode = gfx.getImageDrawMode() + gfx.setImageDrawMode(gfx.kDrawModeInverted) + + local text = tostring(balls) .. " - " .. tostring(strikes) + local textWidth = ScoreFont:getTextWidth(text) + local widthDiff = BallStrikeWidth - textWidth + ScoreFont:drawText(text, x + (widthDiff / 2), y + BallStrikeMarginY) + gfx.setImageDrawMode(originalDrawMode) end function drawScoreboard(x, y, teams, outs, battingTeam, inning)