diff --git a/src/images/game/player-back.png b/src/images/game/player-back.png new file mode 100644 index 0000000..1c2ecc5 Binary files /dev/null and b/src/images/game/player-back.png differ diff --git a/src/main.lua b/src/main.lua index 156d979..a5d70d8 100644 --- a/src/main.lua +++ b/src/main.lua @@ -51,6 +51,8 @@ local Center = xy(Screen.W / 2, Screen.H / 2) local BatCrackSound = playdate.sound.sampleplayer.new("sounds/bat-crack-reverb.wav") local GrassBackground = gfx.image.new("images/game/grass.png") --[[@as pd_image]] local PlayerFrown = gfx.image.new("images/game/player-frown.png") --[[@as pd_image]] +local PlayerSmile = gfx.image.new("images/game/player.png") --[[@as pd_image]] +local PlayerBack = gfx.image.new("images/game/player-back.png") --[[@as pd_image]] local PlayerImageBlipper = blipper.new(100, "images/game/player.png", "images/game/player-lowhat.png") @@ -529,13 +531,16 @@ function tryToThrowOut(self) end end +local batAngleDeg + function updateBatting() if ball.y < BallOffscreen then ball.y = ballAnimatorY:currentValue() + ballFloatAnimator:currentValue() ball.size = 6 end - local batAngle = math.rad(playdate.getCrankPosition() + CrankOffsetDeg) + batAngleDeg = (playdate.getCrankPosition() + CrankOffsetDeg) % 360 + local batAngle = math.rad(batAngleDeg) -- TODO: animate bat-flip or something batBase.x = batter and (batter.x + BatOffset.x) or 0 batBase.y = batter and (batter.y + BatOffset.y) or 0 @@ -680,8 +685,16 @@ function playdate.update() -- TODO? Change blip speed depending on runner speed? for _, runner in pairs(runners) do - -- TODO? Scale sprites down as y increases - PlayerImageBlipper:draw(false, runner.x, runner.y) + if runner == batter then + if batAngleDeg > 50 and batAngleDeg < 200 then + PlayerBack:draw(runner.x, runner.y) + else + PlayerSmile:draw(runner.x, runner.y) + end + else + -- TODO? Scale sprites down as y increases + PlayerImageBlipper:draw(false, runner.x, runner.y) + end end for _, runner in pairs(outRunners) do PlayerFrown:draw(runner.x, runner.y)