From fb991e48dfdd81098c375c5a6413a3db84447e7a Mon Sep 17 00:00:00 2001 From: Sage Vaillancourt Date: Mon, 3 Feb 2025 21:27:46 -0500 Subject: [PATCH] Add PlayerBack sprite --- src/images/game/player-back.png | Bin 0 -> 681 bytes src/main.lua | 19 ++++++++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 src/images/game/player-back.png diff --git a/src/images/game/player-back.png b/src/images/game/player-back.png new file mode 100644 index 0000000000000000000000000000000000000000..1c2ecc5a1d81ce7741ad4cc723785d9f1e899e3b GIT binary patch literal 681 zcmV;a0#^NrP)EX>4Tx04R}tkv&MmP!xqvTcsiu2P=pa%ut=|q9VH0DionYs1;guFnQ@8G-*gu zTpR`0f`dPcRR10C4=2nH^D|{HiAZ8Jfn5oZ+VhW!1bx++?cQKyj-S=npDS49tK7lySbi*RvAfDc| zbk6(4VOEk9;&bA0gDyz?$aUG}H_klWYY7*VPc`!!Ey()lA#h$5l0nOqkMnX zWrgz=XSGset$XqphVt6VGS_KEki;UEAVPqQ8p^1^LX38e6ccGWPk8u;9luB}nOtQs zax9<<6_Voz|AXJNH4BpyZc-=#bidg4$0!io1)6o+{yw(t<_QpZ2ClTWzuEw1K1r{) zwdfJhzYSbmw>5bWxZDATo^;8O94SD{Unl_YXY@@uVBi+$U32HwI>+e)kfB+nZh(VB zV5~^l>mKj!>73iYJ+1lu0Qnqp+-@3z5C8xG24YJ`L;(K){{a7>y{D4^000SaNLh0L z04^f{04^f|c%?sf00007bV*G`2k8O?0W=pe1~}RP000?uMObu0Z*6U5Zgc=ca%Ew3 zWn>_CX>@2HM@dakSAh-}0001hNklCGIOsLr6D7WOqR0Q}3VAyY7=b|~?$X1QWgh*~yx(EE6ZDRJ^^*6^WO~EBWGMyLH P00000NkvXXu0mjfZb2T{ literal 0 HcmV?d00001 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)