redesign music and drone selection
This commit is contained in:
@@ -8,6 +8,9 @@ local fontMed = Graphics.font.new('assets/fonts/onyx_9')
|
||||
local allButtons = { "A", "B", "DOWN", "LEFT", "RIGHT", "UP" }
|
||||
|
||||
function scene:popCode(button)
|
||||
if #scene.code == 0 then
|
||||
return
|
||||
end
|
||||
scene.menuConfirmSound:stop()
|
||||
if scene.tickTimer.paused then
|
||||
scene.droneParts = scene:loadDrone(1, #scene.code)
|
||||
@@ -35,7 +38,14 @@ function scene:popCode(button)
|
||||
end
|
||||
|
||||
scene.inputHandler = {
|
||||
AButtonDown = function() scene:popCode("A") end,
|
||||
AButtonDown = function()
|
||||
if #scene.code == 0 then
|
||||
scene.menuConfirmSound:play(1)
|
||||
Noble.transition(Game, nil, Noble.Transition.SpotlightMask)
|
||||
else
|
||||
scene:popCode("A")
|
||||
end
|
||||
end,
|
||||
BButtonDown = function() scene:popCode("B") end,
|
||||
downButtonDown = function() scene:popCode("DOWN") end,
|
||||
leftButtonDown = function() scene:popCode("LEFT") end,
|
||||
@@ -95,6 +105,11 @@ function scene:setValues()
|
||||
|
||||
scene.menuConfirmSound = playdate.sound.fileplayer.new("assets/audio/confirm")
|
||||
self.aKey = Graphics.image.new("assets/sprites/buttons/A")
|
||||
|
||||
scene.musicEnabled = Noble.Settings.get("music")
|
||||
|
||||
scene.levelAudio = playdate.sound.fileplayer.new("assets/audio/assemble")
|
||||
scene.levelAudio:setVolume(0.7)
|
||||
end
|
||||
|
||||
function scene:init()
|
||||
@@ -120,11 +135,19 @@ function scene:start()
|
||||
scene.super.start(self)
|
||||
|
||||
self.optionsMenu:addMenuItem("Main Menu", function() Noble.transition(Menu) end)
|
||||
Noble.showFPS = true
|
||||
Noble.showFPS = false
|
||||
end
|
||||
|
||||
function scene:enter()
|
||||
scene.super.enter(self)
|
||||
|
||||
scene.buttonTimeout = 100
|
||||
|
||||
Noble.Input.setHandler(scene.inputHandler)
|
||||
|
||||
if scene.musicEnabled then
|
||||
scene.levelAudio:play(0)
|
||||
end
|
||||
end
|
||||
|
||||
function round(number)
|
||||
@@ -155,13 +178,6 @@ function scene:update()
|
||||
yEnd = 100,
|
||||
invert = false
|
||||
})
|
||||
scene.inputHandler = {
|
||||
AButtonDown = function()
|
||||
Noble.transition(Game, nil, Noble.Transition.SpotlightMask)
|
||||
scene.menuConfirmSound:play(1)
|
||||
end
|
||||
}
|
||||
Noble.Input.setHandler(scene.inputHandler)
|
||||
self.aKey:draw(200, 170 + dy)
|
||||
Noble.Text.draw("Start Mission", 218, 175, Noble.Text.ALIGN_LEFT, false, fontMed)
|
||||
self.progressBar:remove()
|
||||
@@ -210,7 +226,7 @@ end
|
||||
|
||||
function scene:exit()
|
||||
scene.super.exit(self)
|
||||
|
||||
scene.levelAudio:stop()
|
||||
Noble.showFPS = false
|
||||
end
|
||||
|
||||
|
115
source/scenes/DroneCardSelector.lua
Normal file
115
source/scenes/DroneCardSelector.lua
Normal file
@@ -0,0 +1,115 @@
|
||||
DroneCardSelector = {}
|
||||
class("DroneCardSelector").extends(BaseScene)
|
||||
local scene = DroneCardSelector
|
||||
local fontMed = Graphics.font.new('assets/fonts/onyx_9')
|
||||
local elapsedTime = 0
|
||||
|
||||
scene.inputHandler = {
|
||||
AButtonDown = function()
|
||||
scene.menuConfirmSound:play(1)
|
||||
Noble.transition(Assemble)
|
||||
end,
|
||||
BButtonDown = function() end,
|
||||
downButtonDown = function()
|
||||
end,
|
||||
leftButtonDown = function()
|
||||
if scene.menuIndex <= 1 then
|
||||
return
|
||||
end
|
||||
scene.menuSelSound:play(1)
|
||||
scene.targetX = scene.targetX + 355
|
||||
scene.menuIndex = scene.menuIndex - 1
|
||||
scene.paginator:set(scene.menuIndex)
|
||||
end,
|
||||
rightButtonDown = function()
|
||||
if scene.menuIndex >= 4 then
|
||||
return
|
||||
end
|
||||
scene.menuSelSound:play(1)
|
||||
scene.targetX = scene.targetX - 355
|
||||
scene.menuIndex = scene.menuIndex + 1
|
||||
scene.paginator:set(scene.menuIndex)
|
||||
end,
|
||||
upButtonDown = function()
|
||||
end,
|
||||
}
|
||||
|
||||
function scene:setValues()
|
||||
self.menuIndex = 1
|
||||
|
||||
self.aKey = Graphics.image.new("assets/sprites/buttons/A")
|
||||
scene.menuConfirmSound = playdate.sound.fileplayer.new("assets/audio/confirm")
|
||||
|
||||
scene.menuSelSound = playdate.sound.fileplayer.new("assets/audio/menu_select")
|
||||
scene.menuSelSound:setVolume(0.5)
|
||||
|
||||
scene.currentX = 0
|
||||
scene.targetX = 0
|
||||
end
|
||||
|
||||
function scene:init()
|
||||
scene.super.init(self)
|
||||
scene:setValues()
|
||||
end
|
||||
|
||||
function scene:start()
|
||||
scene.super.start(self)
|
||||
|
||||
self.optionsMenu:addMenuItem("Main Menu", function() Noble.transition(Menu) end)
|
||||
Noble.showFPS = false
|
||||
end
|
||||
|
||||
function scene:enter()
|
||||
scene.super.enter(self)
|
||||
scene.cards = {
|
||||
DroneCard(0, 0, Drones[1]),
|
||||
DroneCard(0, 0, Drones[2]),
|
||||
DroneCard(0, 0, Drones[3]),
|
||||
DroneCard(0, 0, Drones[4]),
|
||||
}
|
||||
scene.paginator = PageSprite(200, 207)
|
||||
end
|
||||
|
||||
function scene:update()
|
||||
scene.super.update(self)
|
||||
if scene.cards == nil then
|
||||
print("scene.cards is nil")
|
||||
return
|
||||
end
|
||||
elapsedTime = elapsedTime + 1 / playdate.display.getRefreshRate()
|
||||
|
||||
local dy = 2 * math.sin(20 * elapsedTime)
|
||||
|
||||
local speed = 40
|
||||
if math.abs(scene.targetX - scene.currentX) < speed then
|
||||
scene.currentX = scene.targetX
|
||||
else
|
||||
scene.currentX = scene.currentX + speed * ((scene.targetX > scene.currentX) and 1 or -1)
|
||||
end
|
||||
|
||||
local x = 0
|
||||
for i = 1, 4 do
|
||||
x = 29 + (339 + 16) * (i - 1)
|
||||
scene.cards[i]:moveTo(x + scene.currentX, 25)
|
||||
end
|
||||
|
||||
if Drones[scene.menuIndex].locked == false then
|
||||
self.aKey:draw(315, 207 + dy)
|
||||
Noble.Text.draw("Assemble", 333, 210, Noble.Text.ALIGN_LEFT, false, fontMed)
|
||||
end
|
||||
|
||||
scene.paginator:moveTo(200, 207)
|
||||
end
|
||||
|
||||
function scene:exit()
|
||||
scene.super.exit(self)
|
||||
for i = 1, 4 do
|
||||
scene.cards[i]:remove()
|
||||
end
|
||||
Noble.showFPS = false
|
||||
end
|
||||
|
||||
function scene:finish()
|
||||
scene.super.finish(self)
|
||||
playdate.display.setScale(1)
|
||||
end
|
@@ -48,7 +48,7 @@ function scene:setValues()
|
||||
scene.balebaSpawner = playdate.timer.new(10000)
|
||||
scene.balebaSpawner.repeats = true
|
||||
|
||||
scene.levelAudio = playdate.sound.fileplayer.new("assets/audio/war")
|
||||
scene.levelAudio = playdate.sound.fileplayer.new("assets/audio/game")
|
||||
scene.levelAudio:setVolume(0.7)
|
||||
scene.helloAudio = playdate.sound.fileplayer.new("assets/audio/hello")
|
||||
|
||||
@@ -68,7 +68,7 @@ function scene:start()
|
||||
playdate.ui.crankIndicator:draw() -- not sure why this is not working
|
||||
|
||||
self.optionsMenu:addMenuItem("Main Menu", function() Noble.transition(Menu) end)
|
||||
Noble.showFPS = true
|
||||
Noble.showFPS = false
|
||||
end
|
||||
|
||||
function scene:spawnBaleba()
|
||||
|
@@ -16,6 +16,11 @@ function scene:setValues()
|
||||
self.menuYFrom = -50
|
||||
self.menuY = 15
|
||||
self.menuYTo = 240
|
||||
|
||||
scene.musicEnabled = Noble.Settings.get("music")
|
||||
|
||||
scene.levelAudio = playdate.sound.fileplayer.new("assets/audio/menu")
|
||||
scene.levelAudio:setVolume(0.7)
|
||||
end
|
||||
|
||||
function scene:init()
|
||||
@@ -66,6 +71,10 @@ end
|
||||
function scene:enter()
|
||||
scene.super.enter(self)
|
||||
self.sequence = Sequence.new():from(self.menuYFrom):to(self.menuY, 1.5, Ease.outBounce):start()
|
||||
|
||||
if scene.musicEnabled then
|
||||
scene.levelAudio:play(0)
|
||||
end
|
||||
end
|
||||
|
||||
function scene:start()
|
||||
@@ -97,12 +106,13 @@ end
|
||||
|
||||
function scene:exit()
|
||||
scene.super.exit(self)
|
||||
scene.levelAudio:stop()
|
||||
self.sequence = Sequence.new():from(self.menuY):to(self.menuYTo, 0.5, Ease.inSine)
|
||||
self.sequence:start();
|
||||
self.sequence:start()
|
||||
end
|
||||
|
||||
function scene:setupMenu(__menu)
|
||||
__menu:addItem("Start", function() Noble.transition(DroneSelection, nil, Noble.Transition.DipToWhite) end)
|
||||
__menu:addItem("Start", function() Noble.transition(DroneCardSelector, nil, Noble.Transition.DipToWhite) end)
|
||||
__menu:addItem("Tutorial", function() return end)
|
||||
__menu:addItem("Credits", function() return end)
|
||||
__menu:select("Start")
|
||||
|
Reference in New Issue
Block a user