From 262a46be82762b2b48b2fd03cfaf697e90f8805d Mon Sep 17 00:00:00 2001 From: Kazhnuz Date: Sun, 4 Apr 2021 13:17:12 +0200 Subject: [PATCH] feat: style main menu --- sonic-radiance.love/assets/artworks/back.png | Bin 0 -> 1283 bytes .../assets/gui/back/border.png | Bin 1073 -> 5547 bytes .../assets/gui/back/emblem.png | Bin 13747 -> 19985 bytes sonic-radiance.love/assets/gui/back/star.png | Bin 0 -> 4317 bytes .../game/modules/gui/menuback.lua | 27 +++++++++++++----- .../scenes/debug/commons/menu.lua | 14 +++++++-- .../scenes/debug/menu/init.lua | 19 ++++++++++-- .../scenes/debug/menu/menu.lua | 16 +++++------ 8 files changed, 56 insertions(+), 20 deletions(-) create mode 100644 sonic-radiance.love/assets/artworks/back.png create mode 100644 sonic-radiance.love/assets/gui/back/star.png diff --git a/sonic-radiance.love/assets/artworks/back.png b/sonic-radiance.love/assets/artworks/back.png new file mode 100644 index 0000000000000000000000000000000000000000..5e6fb02354ddae5c82a1eb8a2f0865a0ce5e7023 GIT binary patch literal 1283 zcmeAS@N?(olHy`uVBq!ia0y~yU|a!Yf8byPlA#hG-T?*rGo76SJe{2t3X1a6GILTH z7&Iok0`6jPWUnP<)q{Dd%X3E1COQYSv$+9KlAq0G2IwrX8K6;QOly2 zPtLEcUSn`CZOzKioA&Cv6W1)z*A0?gChIPxWwzj8Ln~8-$BIkaxuiW;S!s%Gx-xZ9 zPV{e{9d=A-J=ab5G2Xml!txhZ4SSE??^*lk$BgG9%FjP^Kd#|nni#tvu6WM;T;upj{Y%-rx`iAi7j5H+xhS-w4 z-CY>ogW$n4&8$EX&H|6fVg?31We{epSZZGe6l5>)^mS!_%EH2?tH*K9Y6?(Dro=U( z#5q4VH#M(>!MP|ku_QG`p**uBL%}^KGq<2P^_`ytI|BpIvo4My6}R5rG!#6{AaLYB zzu*k}TLA?tXWwjH5LON}sOIzT-QjEuS#q2}4nx9Bc2>!sgT(;3*m;}T?Fyomc z6kSQm^;0eS);PZI_gU6=@ mAZEg>QKLr#gn|?@;S0OoJeJZKe^Vns>B-a8&t;ucLK6V~SBkIz literal 0 HcmV?d00001 diff --git a/sonic-radiance.love/assets/gui/back/border.png b/sonic-radiance.love/assets/gui/back/border.png index 5a8e62a1e42219d83f98738291ab6ba77fae34a2..a65ec14c75fed06ddcfd0b32d84247f64407cdc6 100644 GIT binary patch literal 5547 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 diff --git a/sonic-radiance.love/assets/gui/back/emblem.png b/sonic-radiance.love/assets/gui/back/emblem.png index cbc4f61ff752d8ad8b82f718813923c4eae1694b..24c7a06eaf9d3809dca15d3df4e5869c0981e79e 100644 GIT binary patch literal 19985 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℞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 literal 13747 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 E0Et&B1^@s6 literal 0 HcmV?d00001 diff --git a/sonic-radiance.love/game/modules/gui/menuback.lua b/sonic-radiance.love/game/modules/gui/menuback.lua index 84e8094..e9bcf20 100644 --- a/sonic-radiance.love/game/modules/gui/menuback.lua +++ b/sonic-radiance.love/game/modules/gui/menuback.lua @@ -1,5 +1,17 @@ local MenuBack = Object:extend() +local fancyBackShader = love.graphics.newShader[[ + uniform number screenWidth; + uniform number screenHeight; + vec4 effect( vec4 color, Image texture, vec2 texture_coords, vec2 screen_coords ){ + vec4 pixel = Texel(texture, texture_coords); //This is the current pixel color + number value = (screen_coords.x / screenWidth) * (screen_coords.y / screenHeight) * 0.5; + number lighten = 0.25; + return vec4(0.5 + value + lighten,0.0 + lighten,0.5 - value + lighten, 1 - pixel.r); + //return vec4(1,1,1, pixel.r); + } + ]] + function MenuBack:new() self.backx = 0 self.bordery = 0 @@ -7,8 +19,12 @@ function MenuBack:new() self.back = love.graphics.newImage("assets/gui/back/background.png") self.border = love.graphics.newImage("assets/gui/back/border.png") self.emblem = love.graphics.newImage("assets/gui/back/emblem.png") + self.star = love.graphics.newImage("assets/gui/back/star.png") self.canvas = nil + local w, h = love.graphics.getDimensions() + fancyBackShader:send("screenWidth",w) + fancyBackShader:send("screenHeight",h) end @@ -28,9 +44,8 @@ function MenuBack:update(dt) for j = 0, (math.ceil(240/160)), 1 do love.graphics.draw(self.border, 0, self.bordery + ((j - 1) * 160)) end - love.graphics.draw(self.emblem, 424, 240 - 32, self.turn, 0.8, 0.8, 200, 200) - love.graphics.setColor(1, 1, 1, 0.85) - love.graphics.rectangle("fill", 0, 0, 424, 240) + love.graphics.draw(self.emblem, 424, 240 - 32, 0, 0.8, 0.8, 200, 200) + love.graphics.draw(self.star, 424, 240 - 32, self.turn, 0.8, 0.8, 200, 200) love.graphics.setColor(1, 1, 1, 1) love.graphics.setCanvas() @@ -39,13 +54,11 @@ end function MenuBack:draw() - love.graphics.setColor(1, 1, 1, 1) - love.graphics.setBlendMode("multiply", "premultiplied") + love.graphics.setShader(fancyBackShader) if (self.canvas ~= nil) then love.graphics.draw(self.canvas, 0, 0) end - love.graphics.setBlendMode("alpha") - love.graphics.setColor(1, 1, 1, 1) + love.graphics.setShader() end return MenuBack \ No newline at end of file diff --git a/sonic-radiance.love/scenes/debug/commons/menu.lua b/sonic-radiance.love/scenes/debug/commons/menu.lua index 86a6d28..72bc0f2 100644 --- a/sonic-radiance.love/scenes/debug/commons/menu.lua +++ b/sonic-radiance.love/scenes/debug/commons/menu.lua @@ -1,10 +1,11 @@ local menu = {} -local RadianceListMenu = require "game.modules.menus.list" +local RadianceListMenu = require "game.modules.menus.fancy" local Widget = require "core.modules.menusystem.widgets" -menu.DebugMenu = RadianceListMenu.ListMenu:extend() -menu.SceneWidget = RadianceListMenu.DualTextWidget:extend() +menu.MainMenu = RadianceListMenu.FancyMenu:extend() +menu.DebugMenu = RadianceListMenu.FancyMenu:extend() +menu.SceneWidget = RadianceListMenu.BaseWidget:extend() local CONST = {} CONST.MENU = {} @@ -14,6 +15,13 @@ CONST.MENU.W = 424/2 CONST.MENU.ITEM_NUMBER = 8 -- Basic menu structure +function menu.MainMenu:new(scene, name) + local x, y = CONST.MENU.X, CONST.MENU.Y + local w = CONST.MENU.W / 1.5 + local itemNumber = CONST.MENU.ITEM_NUMBER + menu.MainMenu.super.new(self, scene, name, x, y, w, itemNumber, false) +end + function menu.DebugMenu:new(scene, name) local x, y = CONST.MENU.X, CONST.MENU.Y local w = CONST.MENU.W diff --git a/sonic-radiance.love/scenes/debug/menu/init.lua b/sonic-radiance.love/scenes/debug/menu/init.lua index 421ebe9..9e372d7 100644 --- a/sonic-radiance.love/scenes/debug/menu/init.lua +++ b/sonic-radiance.love/scenes/debug/menu/init.lua @@ -7,11 +7,12 @@ local battleutils = require "game.utils.battle" local itemutils = require "game.utils.items" local gui = require "game.modules.gui" +local MenuBack = require "game.modules.gui.menuback" function DebugMenu:new() DebugMenu.super.new(self) self.assets:batchImport("scenes.debug.commons.assets") - menu.commons.DebugMenu(self, "BaseMenu") + menu.commons.MainMenu(self, "BaseMenu") menu.commons.SceneWidget(self, "BaseMenu", scenes.overworld, "Start playing") menu.commons.SceneWidget(self, "BaseMenu", scenes.options, "Options") self:buildDebugMenu() @@ -23,6 +24,12 @@ function DebugMenu:new() self.menusystem:switchMenu("BaseMenu") self.panel = panels.Gamedata() + + self.borderY = 30 + self.borders = gui.newBorder(424, 30, 8) + self.backImage = love.graphics.newImage("assets/artworks/back.png") + + self.back = MenuBack() end function DebugMenu:buildDebugMenu() @@ -115,6 +122,7 @@ function DebugMenu:update(dt) if (love.keyboard.isDown("space") and (not self.menusystem.isActive)) then self.menusystem:activate() end + self.back:update(dt) end function DebugMenu:addSubMenu(submenu, parent, name, panel, panelArgument) @@ -126,8 +134,15 @@ function DebugMenu:addSubMenu(submenu, parent, name, panel, panelArgument) end function DebugMenu:draw() + love.graphics.setColor(1, 1, 1, 1) + love.graphics.rectangle("fill", 0, 0, 424, 240) + self.back:draw() + utils.graphics.resetColor() + love.graphics.draw(self.backImage, 0, 0) if (self.menusystem.isActive) then - self.assets.fonts["small"]:print("## SONIC RADIANCE - MAIN MENU ##", 424/2, 8, "center") + love.graphics.draw(self.borders, 0, self.borderY, 0, 1, -1) + love.graphics.draw(self.borders, 424, 240 - self.borderY, 0, -1, 1) + self.assets.fonts["small"]:print("v" .. game.version, 424 - 8, 240 - 20, "right") self.panel:draw(240, 48) diff --git a/sonic-radiance.love/scenes/debug/menu/menu.lua b/sonic-radiance.love/scenes/debug/menu/menu.lua index 909345d..612e960 100644 --- a/sonic-radiance.love/scenes/debug/menu/menu.lua +++ b/sonic-radiance.love/scenes/debug/menu/menu.lua @@ -1,15 +1,15 @@ local commons = require "scenes.debug.commons.menu" -local listMenu = require "game.modules.menus.list" +local listMenu = require "game.modules.menus.fancy" local menu = {} menu.commons = commons -menu.ExitWidget = listMenu.DualTextWidget:extend() -menu.SaveWidget = listMenu.DualTextWidget:extend() -menu.LoadWidget = listMenu.DualTextWidget:extend() -menu.LevelUpWidget = listMenu.DualTextWidget:extend() -menu.AddRemoveWidget = listMenu.DualTextWidget:extend() -menu.ChangeLeaderWidget = listMenu.DualTextWidget:extend() -menu.ItemWidget = listMenu.DualTextWidget:extend() +menu.ExitWidget = listMenu.BaseWidget:extend() +menu.SaveWidget = listMenu.BaseWidget:extend() +menu.LoadWidget = listMenu.BaseWidget:extend() +menu.LevelUpWidget = listMenu.BaseWidget:extend() +menu.AddRemoveWidget = listMenu.BaseWidget:extend() +menu.ChangeLeaderWidget = listMenu.BaseWidget:extend() +menu.ItemWidget = listMenu.BaseWidget:extend() -- ExitWidget function menu.ExitWidget:new(scene, menuName)