diff --git a/Source/Editor.lua b/Source/Editor.lua index 4daa77d..1ca7a50 100644 --- a/Source/Editor.lua +++ b/Source/Editor.lua @@ -332,9 +332,15 @@ function editUpdate() if editor == "main" and math.floor( tileIndex ) == 2 then playdate.graphics.setLineWidth(2) gfx.drawLine(b.start.x+8,b.start.y+8,b.ends.x+8,b.ends.y+8) + gfx.drawText(b.speed,b.start.x+8 - (gfx.getTextSize(b.speed)/2),b.start.y) end end + for saw = 1, #spins, 1 do + local spin = spins[saw] + imgSaw[2]:draw(spin.x,spin.y) + end + for power = 1, #powers, 1 do imgSquare:draw(powers[power].x,powers[power].y) end diff --git a/Source/Main.lua b/Source/Main.lua index d1afd1a..f6d15d4 100644 --- a/Source/Main.lua +++ b/Source/Main.lua @@ -58,11 +58,18 @@ menuButton, error = menu:addMenuItem("game menu", function() removeMap() killBlades() end - totalEnergy = 0 - showEnergy = false - energy = 0 - mainMenuCreation() - createMenu(mainmenu) + if mode ~= "music" then + totalEnergy = 0 + showEnergy = false + energy = 0 + mainMenuCreation() + createMenu(mainmenu) + else + song:stop() + paused = false + playbackRate = 1.0 + createMenu(songlist) + end end) playdate.ui.crankIndicator:start() diff --git a/Source/Menu.lua b/Source/Menu.lua index 85abe38..ff3e2d8 100644 --- a/Source/Menu.lua +++ b/Source/Menu.lua @@ -201,6 +201,10 @@ function menuButtonPress(name, index) mode = "game" elseif name == "EXTRAS" then + if menu == "musicbox" then + song:load("sfx/song1") + song:play(0) + end local m = {} --barpos = 160 --logopos = -112 @@ -263,6 +267,7 @@ function menuButtonPress(name, index) logopos = -112 barpos = 160 mode = "music" + songTitle = songlist[index] song:stop() song:load("sfx/song"..index - 1) song:play(0) diff --git a/Source/Musicbox.lua b/Source/Musicbox.lua index 24d7cc9..dd5ef89 100644 --- a/Source/Musicbox.lua +++ b/Source/Musicbox.lua @@ -1,23 +1,80 @@ -local paused = false -local playbackRate = 1.0 +paused = false +playbackRate = 1.0 +local timeRate = true +songTitle = "AAA" + +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() + 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.001 - if playbackRate < 0.2 then playbackRate = 0.2 end + 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 + if paused == true then + paused = false + else + paused = true + end playbackRate = 1.0 end - if playdate.buttonJustPressed(playdate.kButtonB) or playdate.buttonJustPressed(playdate.kButtonLeft) then + 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() + if timeRate == true then + local prefix = "" + if time.hour > 12 then prefix = " PM" end + playdate.graphics.drawText((time.hour % 12)..":"..time.minute..prefix,0,0) + else + playdate.graphics.drawText(time.hour..":"..time.minute,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",370,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 diff --git a/Source/gfx/cover1bit.png b/Source/gfx/cover1bit.png new file mode 100644 index 0000000..d79be33 Binary files /dev/null and b/Source/gfx/cover1bit.png differ diff --git a/Source/gfx/dither.png b/Source/gfx/dither.png new file mode 100644 index 0000000..7ebd1c5 Binary files /dev/null and b/Source/gfx/dither.png differ diff --git a/Source/gfx/font(1).fnt b/Source/gfx/font(1).fnt deleted file mode 100644 index e218b21..0000000 --- a/Source/gfx/font(1).fnt +++ /dev/null @@ -1,79 +0,0 @@ ---metrics={"baseline":13,"xHeight":1,"capHeight":1,"pairs":{},"left":[],"right":[]} -datalen=2208 -data=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 -width=7 -height=9 - -tracking=1 - -0 7 -1 6 -2 6 -3 6 -4 6 -5 6 -6 6 -7 6 -8 6 -9 6 -space 5 -� 7 -A 6 -B 6 -C 6 -D 6 -E 6 -F 6 -G 6 -H 6 -I 6 -J 6 -K 6 -L 6 -M 6 -N 6 -O 6 -@ 6 -P 6 -Q 6 -R 6 -S 6 -T 6 -U 6 -V 6 -W 6 -X 6 -Y 6 -Z 6 -[ 4 -] 4 -\ 5 -( 4 -) 4 -{ 4 -| 3 -} 4 -~ 6 -: 3 -! 3 -? 7 -; 3 -= 5 -- 5 -+ 5 -. 3 -< 6 -> 6 -/ 5 -^ 5 -_ 6 -, 3 -# 7 -' 3 -" 5 -$ 7 -% 7 -& 7 -` 4 -* 5 - diff --git a/Source/gfx/font.fnt b/Source/gfx/font.fnt deleted file mode 100644 index 50006c9..0000000 --- a/Source/gfx/font.fnt +++ /dev/null @@ -1,79 +0,0 @@ ---metrics={"baseline":13,"xHeight":1,"capHeight":1,"pairs":{},"left":[],"right":[]} -datalen=2208 -data=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 -width=7 -height=9 - -tracking=1 - -0 7 -1 7 -2 7 -3 7 -4 7 -5 7 -6 7 -7 7 -8 7 -9 7 -space 5 -� 7 -A 7 -B 7 -C 7 -D 7 -E 7 -F 7 -G 7 -H 7 -I 7 -J 7 -K 7 -L 7 -M 7 -N 7 -O 7 -@ 7 -P 7 -Q 7 -R 7 -S 7 -T 7 -U 7 -V 7 -W 7 -X 7 -Y 7 -Z 7 -[ 4 -] 4 -\ 5 -( 4 -) 4 -{ 4 -| 3 -} 4 -~ 6 -: 3 -! 3 -? 7 -; 3 -= 5 -- 5 -+ 5 -. 3 -< 6 -> 6 -/ 5 -^ 5 -_ 6 -, 3 -# 7 -' 3 -" 5 -$ 7 -% 7 -& 7 -` 4 -* 5 - diff --git a/Source/pdxinfo b/Source/pdxinfo index 618d8fe..290c19b 100644 --- a/Source/pdxinfo +++ b/Source/pdxinfo @@ -4,5 +4,4 @@ description=Help a crew of rockets collect energy to get back home! bundleID=com.PossiblyAxolotl.RocketBytes version=DEV buildNumber=1 -imagePath=launcher -contentWarning=This game requires extremely precise and quick movement of the crank. \ No newline at end of file +imagePath=launcher \ No newline at end of file