From c37048a49a2075ebdbf607842f2c6da17dae15e4 Mon Sep 17 00:00:00 2001 From: Kazhnuz Date: Thu, 26 Aug 2021 23:27:43 +0200 Subject: [PATCH] improvement: make menuback a gui element --- .../game/modules/gui/menuback.lua | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/sonic-radiance.love/game/modules/gui/menuback.lua b/sonic-radiance.love/game/modules/gui/menuback.lua index e9bcf20..8439d58 100644 --- a/sonic-radiance.love/game/modules/gui/menuback.lua +++ b/sonic-radiance.love/game/modules/gui/menuback.lua @@ -1,4 +1,9 @@ -local MenuBack = Object:extend() +local TextureElement = require "birb.modules.gui.elements.parent" +local MenuBack = TextureElement:extend() + +local backx = 0 +local bordery = 0 +local turn = 0 local fancyBackShader = love.graphics.newShader[[ uniform number screenWidth; @@ -13,52 +18,55 @@ local fancyBackShader = love.graphics.newShader[[ ]] function MenuBack:new() - self.backx = 0 - self.bordery = 0 - self.turn = 0 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.backImage = love.graphics.newImage("assets/artworks/back.png") self.canvas = nil local w, h = love.graphics.getDimensions() fancyBackShader:send("screenWidth",w) fancyBackShader:send("screenHeight",h) + MenuBack.super.new(self, "menuBack", 0, 0, w, h) + self.depth = 200 end function MenuBack:update(dt) - self.backx = (self.backx + dt * 20) % 96 - self.bordery = (self.bordery + dt * 35) % 160 - self.turn = self.turn + (dt/1.5) % 1 + backx = (backx + dt * 20) % 96 + bordery = (bordery + dt * 35) % 160 + turn = turn + (dt/1.5) % 1 self.canvas = love.graphics.newCanvas( 424, 240 ) love.graphics.setCanvas(self.canvas) for i = 0, (math.ceil(424/96)), 1 do for j = 0, (math.ceil(240/96)), 1 do - love.graphics.draw(self.back, self.backx + ((i - 1 ) * 96), self.backx + ((j - 1 ) * 96)) + love.graphics.draw(self.back, backx + ((i - 1 ) * 96), backx + ((j - 1 ) * 96)) end end for j = 0, (math.ceil(240/160)), 1 do - love.graphics.draw(self.border, 0, self.bordery + ((j - 1) * 160)) + love.graphics.draw(self.border, 0, bordery + ((j - 1) * 160)) end 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.draw(self.star, 424, 240 - 32, turn, 0.8, 0.8, 200, 200) love.graphics.setColor(1, 1, 1, 1) love.graphics.setCanvas() - end function MenuBack:draw() + love.graphics.setColor(1, 1, 1, 1) + love.graphics.rectangle("fill", 0, 0, 424, 240) love.graphics.setShader(fancyBackShader) if (self.canvas ~= nil) then love.graphics.draw(self.canvas, 0, 0) end love.graphics.setShader() + utils.graphics.resetColor() + love.graphics.draw(self.backImage, 0, 0) end return MenuBack \ No newline at end of file