musicplayer

This commit is contained in:
PossiblyAxolotl 2022-06-28 17:30:32 -06:00
parent 28fffa834e
commit e51fd4d1c4
9 changed files with 87 additions and 171 deletions

View file

@ -332,9 +332,15 @@ function editUpdate()
if editor == "main" and math.floor( tileIndex ) == 2 then if editor == "main" and math.floor( tileIndex ) == 2 then
playdate.graphics.setLineWidth(2) playdate.graphics.setLineWidth(2)
gfx.drawLine(b.start.x+8,b.start.y+8,b.ends.x+8,b.ends.y+8) 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
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 for power = 1, #powers, 1 do
imgSquare:draw(powers[power].x,powers[power].y) imgSquare:draw(powers[power].x,powers[power].y)
end end

View file

@ -58,11 +58,18 @@ menuButton, error = menu:addMenuItem("game menu", function()
removeMap() removeMap()
killBlades() killBlades()
end end
if mode ~= "music" then
totalEnergy = 0 totalEnergy = 0
showEnergy = false showEnergy = false
energy = 0 energy = 0
mainMenuCreation() mainMenuCreation()
createMenu(mainmenu) createMenu(mainmenu)
else
song:stop()
paused = false
playbackRate = 1.0
createMenu(songlist)
end
end) end)
playdate.ui.crankIndicator:start() playdate.ui.crankIndicator:start()

View file

@ -201,6 +201,10 @@ function menuButtonPress(name, index)
mode = "game" mode = "game"
elseif name == "EXTRAS" then elseif name == "EXTRAS" then
if menu == "musicbox" then
song:load("sfx/song1")
song:play(0)
end
local m = {} local m = {}
--barpos = 160 --barpos = 160
--logopos = -112 --logopos = -112
@ -263,6 +267,7 @@ function menuButtonPress(name, index)
logopos = -112 logopos = -112
barpos = 160 barpos = 160
mode = "music" mode = "music"
songTitle = songlist[index]
song:stop() song:stop()
song:load("sfx/song"..index - 1) song:load("sfx/song"..index - 1)
song:play(0) song:play(0)

View file

@ -1,23 +1,80 @@
local paused = false paused = false
local playbackRate = 1.0 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() function updateBox()
playdate.graphics.clear()
local change, aChange = playdate.getCrankChange() local change, aChange = playdate.getCrankChange()
if paused then if paused then
if change<0 then change = 0 end if change<0 then change = 0 end
song:setRate(change*0.03) 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 else
playbackRate += change*0.001 playbackRate += change*0.0005
if playbackRate < 0.2 then playbackRate = 0.2 end 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) song:setRate(playbackRate)
end end
if playdate.buttonJustPressed(playdate.kButtonA) then 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 playbackRate = 1.0
end 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) createMenu(songlist)
song:stop() song:stop()
end end

BIN
Source/gfx/cover1bit.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 344 B

BIN
Source/gfx/dither.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 B

View file

@ -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
<EFBFBD> 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

View file

@ -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
<EFBFBD> 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

View file

@ -5,4 +5,3 @@ bundleID=com.PossiblyAxolotl.RocketBytes
version=DEV version=DEV
buildNumber=1 buildNumber=1
imagePath=launcher imagePath=launcher
contentWarning=This game requires extremely precise and quick movement of the crank.