+ diff labels to results & * use global alpha in results enter transition

This commit is contained in:
FajsiEx 2021-07-28 19:19:46 +02:00
parent ad6385d51d
commit 25a98b9eb1
1 changed files with 31 additions and 14 deletions

View File

@ -32,6 +32,17 @@ local gradeImages = {
D = gfx.CreateSkinImage("score/D.png", 0),
}
local difficultyLabelImages = {
gfx.CreateSkinImage("diff/1 novice.png", 0),
gfx.CreateSkinImage("diff/2 advanced.png", 0),
gfx.CreateSkinImage("diff/3 exhaust.png", 0),
gfx.CreateSkinImage("diff/4 maximum.png", 0),
gfx.CreateSkinImage("diff/5 infinite.png", 0),
gfx.CreateSkinImage("diff/6 gravity.png", 0),
gfx.CreateSkinImage("diff/7 heavenly.png", 0),
gfx.CreateSkinImage("diff/8 vivid.png", 0),
}
-- ANIMS
local idolAnimation = gfx.LoadSkinAnimation('idol', 1/30, 0, false);
@ -90,14 +101,12 @@ end
function drawTimingBar(y, value, max, type)
gfx.BeginPath();
local barAlpha = math.floor(Easing.outQuad(transitionEnterScale)*255)
if type == 'crit' then
gfx.FillColor(253,243,24,barAlpha);
gfx.FillColor(253,243,24,255);
elseif type == 'early' then
gfx.FillColor(215,48,182,barAlpha);
gfx.FillColor(215,48,182,255);
elseif type == 'late' then
gfx.FillColor(46,211,241,barAlpha);
gfx.FillColor(46,211,241,255);
end
gfx.Rect(rightPanelX+696,rightPanelY+y,293*(value/max), 8);
@ -160,14 +169,12 @@ local drawRightPanel = function()
gfx.BeginPath();
local tw, th = gfx.ImageSize(rightPanelImage);
gfx.ImageRect(rightPanelX, rightPanelY, tw, th, rightPanelImage,
Easing.outQuad(transitionEnterScale), 0);
gfx.ImageRect(rightPanelX, rightPanelY, tw, th, rightPanelImage, 1, 0);
end
local scoreNumber = load_number_image("score_num");
local drawRightPanelContent = function()
-- Draw song name and artist
gfx.FontSize(28)
gfx.TextAlign(gfx.TEXT_ALIGN_LEFT + gfx.TEXT_ALIGN_MIDDLE)
@ -257,7 +264,7 @@ local drawBottomPanel = function()
local tw, th = gfx.ImageSize(bottomPanelImage);
gfx.ImageRect(bottomPanelX, bottomPanelY, tw, th,
bottomPanelImage, Easing.outQuad(transitionEnterScale), 0);
bottomPanelImage, 1, 0);
end
local drawBottomPanelContent = function ()
@ -294,20 +301,26 @@ local drawJacketPanel = function()
gfx.BeginPath();
local tw, th = gfx.ImageSize(jacketPanelImage);
gfx.ImageRect(jacketPanelX, jacketPanelY, tw, th, jacketPanelImage,
Easing.outQuad(transitionEnterScale), 0);
gfx.ImageRect(jacketPanelX, jacketPanelY, tw, th, jacketPanelImage, 1, 0);
end
local drawJacketPanelContent = function()
gfx.BeginPath();
gfx.ImageRect(jacketPanelX + 12, jacketPanelY + 26, 273, 273, jacketImage or defaultJacketImage,
Easing.outQuad(transitionEnterScale), 0);
gfx.ImageRect(jacketPanelX + 12, jacketPanelY + 26, 273, 273, jacketImage or defaultJacketImage, 1, 0);
gfx.BeginPath();
gfx.ImageRect(jacketPanelX + 188, jacketPanelY + 3, 140/1.5, 31/1.5, difficultyLabelImages[result.difficulty+1] or difficultyLabelImages[4], 1, 0);
gfx.FontSize(17)
gfx.LoadSkinFont('Digital-Serial-Bold.ttf')
gfx.TextAlign(gfx.TEXT_ALIGN_RIGHT + gfx.TEXT_ALIGN_MIDDLE)
gfx.Text(result.level, jacketPanelX+270, jacketPanelY+14.5);
end
local tickTransitions = function(deltaTime)
if transitionEnterScale < 1 then
transitionEnterScale = transitionEnterScale + deltaTime / 10 -- transition should last for 1s
transitionEnterScale = transitionEnterScale + deltaTime / 1.5 -- transition should last for 1.5s
else
transitionEnterScale = 1
end
@ -387,6 +400,8 @@ render = function(deltaTime, showStats)
drawTopBar()
gfx.GlobalAlpha(Easing.outQuad(transitionEnterScale))
drawBottomPanel()
drawBottomPanelContent()
@ -396,6 +411,8 @@ render = function(deltaTime, showStats)
drawJacketPanel()
drawJacketPanelContent()
gfx.GlobalAlpha(1)
handleSfx()
-- debug