ExperimentalGear/scripts/components/headers/songSelectHeader.lua

69 lines
1.7 KiB
Lua

local resx, resy = game.GetResolution();
local desw = 1080;
local desh = 1920;
local scale = 1;
local BAR_ALPHA = 191;
local HEADER_HEIGHT = 100
local headerY = 0;
local animationHeaderGlowScale = 0;
local animationHeaderGlowAlpha = 0;
-- Images
local headerTitleImage = gfx.CreateSkinImage("song_select/header/title.png", 1)
local headerGlowTitleImage = gfx.CreateSkinImage("song_select/header/title_glow.png", 1)
function resetLayoutInformation()
resx, resy = game.GetResolution()
desw = 1080
desh = 1920
scale = resx / desw
end
local drawHeader = function ()
gfx.BeginPath();
gfx.FillColor(0,0,0,BAR_ALPHA);
gfx.Rect(0,0,desw, HEADER_HEIGHT);
gfx.Fill();
gfx.ClosePath()
gfx.ImageRect(42, 14, 423*0.85, 80*0.85, headerTitleImage, 1, 0)
gfx.ImageRect(42, 14, 423*0.85, 80*0.85, headerGlowTitleImage, animationHeaderGlowAlpha, 0)
end
local progressTransitions = function (deltatime)
-- HEADER GLOW ANIMATION
if animationHeaderGlowScale < 1 then
animationHeaderGlowScale = animationHeaderGlowScale + deltatime / 1 -- transition should last for that time in seconds
else
animationHeaderGlowScale = 0
end
if animationHeaderGlowScale < 0.5 then
animationHeaderGlowAlpha = animationHeaderGlowScale * 2;
else
animationHeaderGlowAlpha = 1-((animationHeaderGlowScale-0.5) * 2);
end
animationHeaderGlowAlpha = animationHeaderGlowAlpha*0.4
end
local draw = function (deltatime)
gfx.Save()
resetLayoutInformation()
gfx.Scale(scale, scale)
gfx.LoadSkinFont("NotoSans-Regular.ttf");
drawHeader();
progressTransitions(deltatime);
gfx.Restore()
end
return {
draw = draw
};