Menu = {} class("Menu").extends(BaseScene) local scene = Menu function scene:setValues() self.background = Graphics.image.new("assets/images/background2") self.color1 = Graphics.kColorBlack self.color2 = Graphics.kColorWhite self.menu = nil self.sequence = nil self.menuX = 15 self.menuYFrom = -50 self.menuY = 15 self.menuYTo = 240 end function scene:init() scene.super.init(self) local menuSelSound = playdate.sound.fileplayer.new("assets/audio/menu_select") menuSelSound:setVolume(0.5) self:setValues() self.menu = Noble.Menu.new(false, Noble.Text.ALIGN_CENTER, false, self.color2, 4,6,0, Noble.Text.FONT_SMALL) self:setupMenu(self.menu) local crankTick = 0 self.inputHandler = { upButtonDown = function() self.menu:selectPrevious() menuSelSound:play(1) end, downButtonDown = function() self.menu:selectNext() menuSelSound:play(1) end, cranked = function(change, acceleratedChange) crankTick = crankTick + change if (crankTick > 30) then crankTick = 0 self.menu:selectNext() menuSelSound:play(1) elseif (crankTick < -30) then crankTick = 0 self.menu:selectPrevious() menuSelSound:play(1) end end, AButtonDown = function() self.menu:click() end } end function scene:enter() scene.super.enter(self) self.sequence = Sequence.new():from(self.menuYFrom):to(self.menuY, 1.5, Ease.outBounce):start() end function scene:start() scene.super.start(self) self.menu:activate() end function scene:drawBackground() scene.super.drawBackground(self) self.background:draw(0, 0) end local logo_image = Graphics.image.new("assets/images/logo") function scene:update() scene.super.update(self) Graphics.setColor(self.color1) Graphics.setDitherPattern(0.2, Graphics.image.kDitherTypeScreen) Graphics.fillRoundRect(200-38, 160-8, 75, 60, 15) self.menu:draw(200, 160) logo_image:draw(120, 55) Graphics.setColor(Graphics.kColorBlack) end function scene:exit() scene.super.exit(self) self.sequence = Sequence.new():from(self.menuY):to(self.menuYTo, 0.5, Ease.inSine) self.sequence:start(); end function scene:setupMenu(__menu) __menu:addItem("Start", function() Noble.transition(Game, nil, Noble.Transition.DipToWhite) end) __menu:addItem("Tutorial", function() return end) __menu:addItem("Credits", function() return end) __menu:select("Start") end