Add PlayerBack sprite

This commit is contained in:
Sage Vaillancourt 2025-02-03 21:27:46 -05:00
parent 6308871692
commit fb991e48df
2 changed files with 16 additions and 3 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 681 B

View File

@ -51,6 +51,8 @@ local Center <const> = xy(Screen.W / 2, Screen.H / 2)
local BatCrackSound <const> = playdate.sound.sampleplayer.new("sounds/bat-crack-reverb.wav") local BatCrackSound <const> = playdate.sound.sampleplayer.new("sounds/bat-crack-reverb.wav")
local GrassBackground <const> = gfx.image.new("images/game/grass.png") --[[@as pd_image]] local GrassBackground <const> = gfx.image.new("images/game/grass.png") --[[@as pd_image]]
local PlayerFrown <const> = gfx.image.new("images/game/player-frown.png") --[[@as pd_image]] local PlayerFrown <const> = gfx.image.new("images/game/player-frown.png") --[[@as pd_image]]
local PlayerSmile <const> = gfx.image.new("images/game/player.png") --[[@as pd_image]]
local PlayerBack <const> = gfx.image.new("images/game/player-back.png") --[[@as pd_image]]
local PlayerImageBlipper <const> = blipper.new(100, "images/game/player.png", "images/game/player-lowhat.png") local PlayerImageBlipper <const> = blipper.new(100, "images/game/player.png", "images/game/player-lowhat.png")
@ -529,13 +531,16 @@ function tryToThrowOut(self)
end end
end end
local batAngleDeg
function updateBatting() function updateBatting()
if ball.y < BallOffscreen then if ball.y < BallOffscreen then
ball.y = ballAnimatorY:currentValue() + ballFloatAnimator:currentValue() ball.y = ballAnimatorY:currentValue() + ballFloatAnimator:currentValue()
ball.size = 6 ball.size = 6
end end
local batAngle = math.rad(playdate.getCrankPosition() + CrankOffsetDeg) batAngleDeg = (playdate.getCrankPosition() + CrankOffsetDeg) % 360
local batAngle = math.rad(batAngleDeg)
-- TODO: animate bat-flip or something -- TODO: animate bat-flip or something
batBase.x = batter and (batter.x + BatOffset.x) or 0 batBase.x = batter and (batter.x + BatOffset.x) or 0
batBase.y = batter and (batter.y + BatOffset.y) or 0 batBase.y = batter and (batter.y + BatOffset.y) or 0
@ -680,9 +685,17 @@ function playdate.update()
-- TODO? Change blip speed depending on runner speed? -- TODO? Change blip speed depending on runner speed?
for _, runner in pairs(runners) do for _, runner in pairs(runners) do
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 -- TODO? Scale sprites down as y increases
PlayerImageBlipper:draw(false, runner.x, runner.y) PlayerImageBlipper:draw(false, runner.x, runner.y)
end end
end
for _, runner in pairs(outRunners) do for _, runner in pairs(outRunners) do
PlayerFrown:draw(runner.x, runner.y) PlayerFrown:draw(runner.x, runner.y)
end end