Rocket-Bytes/Source/Musicbox.lua
PossiblyAxolotl 73008809fe begin PLUS
2024-03-07 19:10:56 -06:00

93 lines
No EOL
3.2 KiB
Lua

paused = false
playbackRate = 1.0
local timeRate = true
songTitle = "AAA"
local number = math.random(1000,9999)
local imgDither = playdate.graphics.image.new("gfx/dither")
local imgCover = playdate.graphics.image.new("gfx/cover1bit")
assert(imgDither)
assert(imgCover)
function updateBox()
playdate.graphics.clear()
processStars(-10,-10)
local change, aChange = playdate.getCrankChange()
if paused then
if change<0 then change = 0 end
song:setRate(change*0.03)
if not playdate.isCrankDocked() then
playdate.graphics.drawText(math.floor((change*0.03)*100).."%", 200 - playdate.graphics.getTextSize(math.floor((change*0.03)*100).."%")/ 2,210)
end
else
playbackRate += change*0.0005
if playbackRate < 0.2 then playbackRate = 0.2 elseif playbackRate > 3 then playbackRate = 3 end
if not playdate.isCrankDocked() or math.floor(playbackRate*100) ~= 100 then
playdate.graphics.drawText(math.floor(playbackRate * 100).."%", 200 - playdate.graphics.getTextSize(math.floor(playbackRate * 100).."%")/ 2,210)
end
song:setRate(playbackRate)
end
if playdate.buttonJustPressed(playdate.kButtonA) then
if paused == true then
paused = false
else
paused = true
end
playbackRate = 1.0
end
if paused then playdate.graphics.setPattern(imgDither) end
playdate.graphics.setLineWidth(10)
playdate.graphics.drawLine(0,235,(song:getOffset()/song:getLength())*400,235)
playdate.graphics.setColor(playdate.graphics.kColorWhite)
playdate.graphics.setLineWidth(2)
playdate.graphics.drawLine(0,19,400,19)
local time = playdate.getTime()
local displayTime = time.minute
if time.minute < 10 then
displayTime = "0"..time.minute
end
if timeRate == true then
local prefix = " AM"
if time.hour > 11 then prefix = " PM" end
if time.hour == 0 then time.hour = 24 end
local tt = (time.hour % 12)
if tt == 0 then tt = 12 end
playdate.graphics.drawText(tt..":"..displayTime..prefix,0,0)
else
playdate.graphics.drawText(time.hour..":"..displayTime,0,0)
end
playdate.graphics.drawText(math.ceil(playdate.getBatteryPercentage()).."%",400-playdate.graphics.getTextSize(math.ceil(playdate.getBatteryPercentage()).."%"),0)
imgCover:draw(200-67,30)
playdate.graphics.drawText(songTitle, 200 - playdate.graphics.getTextSize(songTitle)/2,180)
if math.floor(song:getOffset()) < math.floor(song:getLength()) then playdate.graphics.drawText(math.floor(song:getOffset()*100)/100,1,210) else playdate.graphics.drawText(math.floor(song:getLength()),1,210) end
playdate.graphics.drawText(math.floor(song:getLength()).."S",398- playdate.graphics.getTextSize(tostring(math.floor(song:getLength()))),210)
if playdate.buttonJustPressed(playdate.kButtonUp) then
if timeRate == true then timeRate = false else timeRate = true end
end
if playdate.buttonJustPressed(playdate.kButtonLeft) then
song:setOffset(0)
end
if playdate.buttonJustPressed(playdate.kButtonB) then
paused = false
playbackRate = 1.0
createMenu(songlist)
song:stop()
end
processExplosions()
end