diff --git a/src/draw/fans.lua b/src/draw/fans.lua new file mode 100644 index 0000000..5e6d9df --- /dev/null +++ b/src/draw/fans.lua @@ -0,0 +1,36 @@ +local gfx , C = playdate.graphics, C + +fans = {} + +local FanImages = { DarkSkinFan, LightSkinFan } +local FanWidth , FanHeight = FanImages[1]:getSize() +local BgWidth , BgHeight = GrassBackground:getSize() + +local AudienceImage1 = gfx.image.new(BgWidth, BgHeight) +local AudienceImage2 = gfx.image.new(BgWidth, BgHeight) + +local height = 0 +while height < BgHeight do + local width = 0 + while width < BgWidth do + gfx.pushContext(AudienceImage1) + local image = FanImages[math.random(#FanImages)] + local jiggle = math.random(5) + image:draw(width + jiggle, height) + gfx.popContext() + + gfx.pushContext(AudienceImage2) + image:draw(width + jiggle + math.random(0, 2), height) + gfx.popContext() + + width = width + FanWidth + end + height = height + FanHeight - 10 +end +local AudienceMovement = gfx.animation.blinker.new(200, 200, true) +AudienceMovement:start() + +function fans.draw() + local currentImage = AudienceMovement.on and AudienceImage1 or AudienceImage2 + currentImage:draw(-400, -720) +end diff --git a/src/images/game/GrassBackground.png b/src/images/game/GrassBackground.png index 00bae54..9be0257 100644 Binary files a/src/images/game/GrassBackground.png and b/src/images/game/GrassBackground.png differ diff --git a/src/main.lua b/src/main.lua index 9da90a6..d81675a 100644 --- a/src/main.lua +++ b/src/main.lua @@ -39,6 +39,7 @@ import 'npc.lua' import 'pitching.lua' import 'draw/box-score.lua' +import 'draw/fans.lua' import 'draw/fielder.lua' import 'draw/overlay.lua' import 'draw/panner.lua' @@ -592,6 +593,7 @@ function Game:update() local offsetX, offsetY = self.panner:get(self.state.deltaSeconds) gfx.setDrawOffset(offsetX, offsetY) + fans.draw() GrassBackground:draw(-400, -720) ---@type { y: number, drawAction: fun() }[]