feat: add transitions between title and menu
This commit is contained in:
parent
f59ebd11e5
commit
f538ffa94a
4 changed files with 38 additions and 15 deletions
|
@ -16,7 +16,7 @@ function DebugMenu:new()
|
||||||
menu.commons.SceneWidget(self, "BaseMenu", scenes.overworld, "Start playing")
|
menu.commons.SceneWidget(self, "BaseMenu", scenes.overworld, "Start playing")
|
||||||
menu.commons.SceneWidget(self, "BaseMenu", scenes.options, "Options")
|
menu.commons.SceneWidget(self, "BaseMenu", scenes.options, "Options")
|
||||||
self:buildDebugMenu()
|
self:buildDebugMenu()
|
||||||
menu.commons.SceneWidget(self, "BaseMenu", scenes.title, "Return to title")
|
menu.TitleWidget(self, "BaseMenu")
|
||||||
menu.ExitWidget(self, "BaseMenu")
|
menu.ExitWidget(self, "BaseMenu")
|
||||||
|
|
||||||
self.menusystem.menus["BaseMenu"]:finalize()
|
self.menusystem.menus["BaseMenu"]:finalize()
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
local commons = require "scenes.debug.commons.menu"
|
local commons = require "scenes.debug.commons.menu"
|
||||||
local listMenu = require "game.modules.menus.fancy"
|
local listMenu = require "game.modules.menus.fancy"
|
||||||
|
|
||||||
|
local defTransitions = require "core.modules.transitions"
|
||||||
|
local radTransitions = require "game.modules.transitions"
|
||||||
|
|
||||||
local menu = {}
|
local menu = {}
|
||||||
menu.commons = commons
|
menu.commons = commons
|
||||||
menu.ExitWidget = listMenu.BaseWidget:extend()
|
menu.ExitWidget = listMenu.BaseWidget:extend()
|
||||||
|
@ -10,6 +13,16 @@ menu.LevelUpWidget = listMenu.BaseWidget:extend()
|
||||||
menu.AddRemoveWidget = listMenu.BaseWidget:extend()
|
menu.AddRemoveWidget = listMenu.BaseWidget:extend()
|
||||||
menu.ChangeLeaderWidget = listMenu.BaseWidget:extend()
|
menu.ChangeLeaderWidget = listMenu.BaseWidget:extend()
|
||||||
menu.ItemWidget = listMenu.BaseWidget:extend()
|
menu.ItemWidget = listMenu.BaseWidget:extend()
|
||||||
|
menu.TitleWidget = listMenu.BaseWidget:extend()
|
||||||
|
|
||||||
|
-- TitleWidget
|
||||||
|
function menu.TitleWidget:new(scene, menuName)
|
||||||
|
menu.TitleWidget.super.new(self, scene, menuName, "Return to Title", "")
|
||||||
|
end
|
||||||
|
|
||||||
|
function menu.TitleWidget:action()
|
||||||
|
core.screen:startTransition(defTransitions.circle, radTransitions.borders, function() scenes.title(true) end, 424/2, 240/2)
|
||||||
|
end
|
||||||
|
|
||||||
-- ExitWidget
|
-- ExitWidget
|
||||||
function menu.ExitWidget:new(scene, menuName)
|
function menu.ExitWidget:new(scene, menuName)
|
||||||
|
|
|
@ -31,9 +31,11 @@ local Menu = require "scenes.menus.titlescreen.menu"
|
||||||
|
|
||||||
local zoneList = require("datas.gamedata.maps.shoot.zones")
|
local zoneList = require("datas.gamedata.maps.shoot.zones")
|
||||||
|
|
||||||
function TitleScreen:new()
|
function TitleScreen:new(fromMenu)
|
||||||
TitleScreen.super.new(self)
|
TitleScreen.super.new(self)
|
||||||
|
|
||||||
|
local fromMenu = (fromMenu == true)
|
||||||
|
|
||||||
self.borders = gui.newBorder(424, 30, 8)
|
self.borders = gui.newBorder(424, 30, 8)
|
||||||
self.assets:addImage("logo", "assets/artworks/logo.png")
|
self.assets:addImage("logo", "assets/artworks/logo.png")
|
||||||
self.assets:addImageFont("menu", "assets/gui/fonts/SA2font")
|
self.assets:addImageFont("menu", "assets/gui/fonts/SA2font")
|
||||||
|
@ -45,23 +47,29 @@ function TitleScreen:new()
|
||||||
self.tweens = TweenManager(self)
|
self.tweens = TweenManager(self)
|
||||||
self:initBackground()
|
self:initBackground()
|
||||||
|
|
||||||
self.borderY = 0
|
self.haveMenu = false
|
||||||
self.logoX = 270
|
|
||||||
|
|
||||||
self.darkenOpacity = 1
|
|
||||||
self.flashOpacity = 0
|
self.flashOpacity = 0
|
||||||
self.canShowPressStart = false
|
|
||||||
self.showPressStart = true
|
self.showPressStart = true
|
||||||
self.showPressStartTimer = 0.5
|
self.showPressStartTimer = 0.5
|
||||||
|
|
||||||
self.haveMenu = false
|
if (fromMenu) then
|
||||||
|
self.darkenOpacity = 0
|
||||||
|
self.canShowPressStart = true
|
||||||
|
self.borderY = 30
|
||||||
|
self.logoX = 0
|
||||||
|
else
|
||||||
|
self.darkenOpacity = 1
|
||||||
|
self.canShowPressStart = false
|
||||||
|
self.borderY = 0
|
||||||
|
self.logoX = 270
|
||||||
|
|
||||||
self.tweens:newTween(0.2, 0.5, {borderY = 30}, "inOutQuart")
|
self.tweens:newTween(0.2, 0.5, {borderY = 30}, "inOutQuart")
|
||||||
self.tweens:newTween(0.5, 0.4, {darkenOpacity = 0}, "outExpo")
|
self.tweens:newTween(0.5, 0.4, {darkenOpacity = 0}, "outExpo")
|
||||||
self.tweens:newTween(0.7, 0.6, {logoX = 0}, "inOutQuart")
|
self.tweens:newTween(0.7, 0.6, {logoX = 0}, "inOutQuart")
|
||||||
self.tweens:newTween(1.3, 0.03, {flashOpacity = 1}, "inQuart")
|
self.tweens:newTween(1.3, 0.03, {flashOpacity = 1}, "inQuart")
|
||||||
self.tweens:newTween(1.45, 0.2, {flashOpacity = 0}, "outExpo")
|
self.tweens:newTween(1.45, 0.2, {flashOpacity = 0}, "outExpo")
|
||||||
self.tweens:newSwitch(1.4, { "canShowPressStart" })
|
self.tweens:newSwitch(1.4, { "canShowPressStart" })
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function TitleScreen:initBackground()
|
function TitleScreen:initBackground()
|
||||||
|
|
|
@ -6,6 +6,8 @@ local SaveWidget = RadianceWidget:extend()
|
||||||
local gui = require "game.modules.gui"
|
local gui = require "game.modules.gui"
|
||||||
local charutils = require "game.utils.characters"
|
local charutils = require "game.utils.characters"
|
||||||
|
|
||||||
|
local defTransitions = require "core.modules.transitions"
|
||||||
|
local radTransitions = require "game.modules.transitions"
|
||||||
|
|
||||||
local HPADDING = 68
|
local HPADDING = 68
|
||||||
local VPADDING = 28
|
local VPADDING = 28
|
||||||
|
@ -60,7 +62,7 @@ end
|
||||||
|
|
||||||
function SaveWidget:action()
|
function SaveWidget:action()
|
||||||
game:read(self.saveid)
|
game:read(self.saveid)
|
||||||
scenes.debug.menu()
|
core.screen:startTransition(radTransitions.borders, defTransitions.circle, function() scenes.debug.menu() end, 424/2, 240/2)
|
||||||
end
|
end
|
||||||
|
|
||||||
return SaveMenu
|
return SaveMenu
|
||||||
|
|
Loading…
Reference in a new issue