From a9b76503b82669c468f6f72970e606cba08239c2 Mon Sep 17 00:00:00 2001 From: Kazhnuz Date: Thu, 27 Aug 2020 19:05:00 +0200 Subject: [PATCH] improvement: add basic layout const for menus --- sonic-radiance.love/scenes/overworld/init.lua | 2 +- .../overworld/screens/mainmenu/character.lua | 22 ++++++++++--------- .../overworld/screens/mainmenu/const.lua | 10 +++++++++ .../overworld/screens/mainmenu/pause.lua | 12 ++++++---- .../scenes/overworld/screens/parent.lua | 12 +++++++++- 5 files changed, 42 insertions(+), 16 deletions(-) create mode 100644 sonic-radiance.love/scenes/overworld/screens/mainmenu/const.lua diff --git a/sonic-radiance.love/scenes/overworld/init.lua b/sonic-radiance.love/scenes/overworld/init.lua index 3f71a5e..5b91a47 100644 --- a/sonic-radiance.love/scenes/overworld/init.lua +++ b/sonic-radiance.love/scenes/overworld/init.lua @@ -139,7 +139,7 @@ function MovePlayer:draw() if (self.currentScreen ~= nil) then - self.currentScreen:draw() + self.currentScreen:drawForeground() end end diff --git a/sonic-radiance.love/scenes/overworld/screens/mainmenu/character.lua b/sonic-radiance.love/scenes/overworld/screens/mainmenu/character.lua index 00d2976..d26557e 100644 --- a/sonic-radiance.love/scenes/overworld/screens/mainmenu/character.lua +++ b/sonic-radiance.love/scenes/overworld/screens/mainmenu/character.lua @@ -3,6 +3,7 @@ local CharacterScreen = ParentScreen:extend() local menu = require "game.modules.menus.fancy" local gui = require "game.modules.gui" +local const = require "scenes.overworld.screens.mainmenu.const" local ReturnWidget = menu.BaseWidget:extend() @@ -15,11 +16,13 @@ function CharacterScreen:new(scene, character) self.artwork = love.graphics.newImage("datas/gamedata/characters/" .. character .. "/artwork.png") self.artworkOrigin = require("datas.gamedata.characters." .. character .. ".artwork") - CharacterScreen.super.new(self, scene) + CharacterScreen.super.new(self, scene, self.character.name) end function CharacterScreen:setMenu() - menu.FancyMenu(self.scene, "menu", 272, 140+(17*3), 128, 1, false) + local itemNumber = 1 + local y = const.Y2 - (17*itemNumber) + menu.FancyMenu(self.scene, "menu", const.X2 - 128, y, 128, 1, false) --menu.BaseWidget(self.scene, "equip", "Change talent", ">") --menu.BaseWidget(self.scene, "equip", "Battle skills", ">") --menu.BaseWidget(self.scene, "equip", "Equipement", ">") @@ -31,19 +34,18 @@ function CharacterScreen:setMenu() end function CharacterScreen:draw() - self.scene.assets.fonts["SA2font"]:print(self.character.name, 158, 16) - love.graphics.draw(self.nameBox, 24 - 4, 40) - love.graphics.draw(self.statBox, 24 - 4, 100) - love.graphics.draw(self.statBox, 24 - 4, 160) + love.graphics.draw(self.nameBox, const.X - 4, const.Y - 4) + love.graphics.draw(self.statBox, const.X - 4, 96) + love.graphics.draw(self.statBox, const.X - 4, 156) local identityString = self.character.fullname .. "\n" identityString = identityString .. "Class: " .. self.character.data.class - self.scene.assets.fonts["small"]:draw(identityString, 24, 40 + 3, -1, "left") + self.scene.assets.fonts["small"]:draw(identityString, const.X, const.Y - 1, -1, "left") local levelString = "Level: " .. self.character.level .. "\n" local levelString = levelString .. "Current exp: " .. self.character.exp .. "\n" local levelString = levelString .. "Next level: " .. self.character.exp_next - self.scene.assets.fonts["small"]:draw(levelString, 24, 100 + 3, -1, "left") + self.scene.assets.fonts["small"]:draw(levelString, const.X, 96 + 3, -1, "left") local statString = "ATK " .. self.character.stats.attack .. "0" .. "\n" statString = statString .. "DEF " .. self.character.stats.defense .. "0" .. "\n" @@ -53,8 +55,8 @@ function CharacterScreen:draw() statString2 = statString2 .. "TEK " .. self.character.stats.technic .. "0" local separatorString = ">" .. "\n" .. ">" .. "\n" .. ">" .. "\n" .. ">" .. "\n" .. ">" .. "\n" .. ">" - self.scene.assets.fonts["small"]:draw(statString, 24, 163, -1, "left") - self.scene.assets.fonts["small"]:draw(statString2, 24+ (176/2), 163, -1, "left") + self.scene.assets.fonts["small"]:draw(statString, const.X, 159, -1, "left") + self.scene.assets.fonts["small"]:draw(statString2, const.X + (176/2), 159, -1, "left") --self.scene.assets.fonts["small"]:draw(separatorString, 88, 120, -1, "left") --self.scene.assets.fonts["small"]:draw("Weak to: Earth, Lightning \nResist To: Fire", 24+76, 181, -1, "left") end diff --git a/sonic-radiance.love/scenes/overworld/screens/mainmenu/const.lua b/sonic-radiance.love/scenes/overworld/screens/mainmenu/const.lua new file mode 100644 index 0000000..02d015a --- /dev/null +++ b/sonic-radiance.love/scenes/overworld/screens/mainmenu/const.lua @@ -0,0 +1,10 @@ +local ConstMenu = {} + +ConstMenu.X = 32 +ConstMenu.Y = 40 +ConstMenu.WIDTH = 424 - 64 +ConstMenu.HEIGHT = 240 - 80 +ConstMenu.X2 = 424 - 32 +ConstMenu.Y2 = 240 - 40 + +return ConstMenu diff --git a/sonic-radiance.love/scenes/overworld/screens/mainmenu/pause.lua b/sonic-radiance.love/scenes/overworld/screens/mainmenu/pause.lua index 6de0fbc..33332b0 100644 --- a/sonic-radiance.love/scenes/overworld/screens/mainmenu/pause.lua +++ b/sonic-radiance.love/scenes/overworld/screens/mainmenu/pause.lua @@ -17,15 +17,17 @@ local TeamWidget = menu.BaseWidget:extend() local ViewWidget = menu.BaseWidget:extend() local SaveExitWidget = menu.BaseWidget:extend() +local const = require "scenes.overworld.screens.mainmenu.const" + function PauseScreen:new(scene, menu, widget) self.menuSelected = menu or "main" self.widgetSelected = widget self.widget = widget - PauseScreen.super.new(self, scene) + PauseScreen.super.new(self, scene, "Menu") end function PauseScreen:setMenu() - menu.FancyMenu(self.scene, "main", 16, 48, 128, 8, false) + menu.FancyMenu(self.scene, "main", const.X - 12, const.Y, 108, 8, false) TeamWidget(self.scene) menu.BaseWidget(self.scene, "main", "Quest", ">") menu.BaseWidget(self.scene, "main", "Items", ">") @@ -54,12 +56,14 @@ function PauseScreen:setMenu() end function PauseScreen:draw() - self.scene.assets.fonts["SA2font"]:print("MAIN MENU", 158, 16) + end -- Character menu function CharacterMenu:new(scene) - CharacterMenu.super.new(self, scene, "character", 168, 40, 248, 168, 4) + local x = const.X + 124 + local w = const.WIDTH - x + 32 + CharacterMenu.super.new(self, scene, "character", x, const.Y, w, const.HEIGHT, 4) end function CharacterMenu:cancelAction() diff --git a/sonic-radiance.love/scenes/overworld/screens/parent.lua b/sonic-radiance.love/scenes/overworld/screens/parent.lua index 9f85154..83450df 100644 --- a/sonic-radiance.love/scenes/overworld/screens/parent.lua +++ b/sonic-radiance.love/scenes/overworld/screens/parent.lua @@ -1,13 +1,16 @@ local MenuScreenParent = Object:extend() local menu = require "scenes.overworld.screens.menu" +local const = require "scenes.overworld.screens.mainmenu.const" -function MenuScreenParent:new(scene) +function MenuScreenParent:new(scene, title) self.scene = scene self.menusystem = scene.menusystem self.menuObj = menu + self.title = title or "" + self.scene:registerScreen(self) self:setMenu() end @@ -25,6 +28,13 @@ function MenuScreenParent:quit() self.scene:quitScreen() end +function MenuScreenParent:drawForeground() + self.scene.assets.fonts["SA2font"]:print(self.title, 158, 16) + --love.graphics.rectangle("line", const.X, const.Y, const.WIDTH, const.HEIGHT) + self:draw() +end + + function MenuScreenParent:draw() end