+ song jacket to gameplay & + create diff box component

This commit is contained in:
FajsiEx 2021-10-28 10:27:06 +02:00
parent 600ee2430d
commit a0ab2dc007
3 changed files with 68 additions and 3 deletions

View File

@ -0,0 +1,38 @@
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)
}
function render(deltatime, x, y, diff, level)
gfx.LoadSkinFont('Digital-Serial-Bold.ttf')
gfx.BeginPath();
gfx.ImageRect(x, y, 140 / 1.5, 31 / 1.5,
difficultyLabelImages[diff] 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(level, x + 50, y+8);
-- -- Draw volforce badge
-- gfx.BeginPath();
-- gfx.ImageRect(x, y, 42, 42, volforceBadgeImage, 1, 0);
-- -- Draw volforce label
-- gfx.FontSize(11)
-- gfx.Text('VOLFORCE', x + 47, y + 14);
end
return {
render = render
}

View File

@ -33,7 +33,7 @@ function render(deltaTime)
Banner.render(deltaTime);
UserPanel.render(deltaTime);
SongPanel.render(deltaTime, gameplay.bpm, gameplay.hispeed);
SongPanel.render(deltaTime, gameplay.bpm, gameplay.hispeed, gameplay.jacketPath);
ScorePanel.render(deltaTime, score, maxChain)
Gauge.render(

View File

@ -5,6 +5,16 @@ local desh = 1920;
local bgLeftImage = gfx.CreateSkinImage("gameplay/song_panel/bg_left.png", 0);
local bgRightImage = gfx.CreateSkinImage("gameplay/song_panel/bg_right.png", 0);
local jacketFallbackImage = gfx.CreateSkinImage("song_select/loading.png", 0);
local jacketImage;
local loadedJacketImage = false;
local loadJacketImage = function (jacketPath)
if jacketImage == nil or jacketImage == jacketFallbackImage then
jacketImage = gfx.LoadImageJob(jacketPath, jacketFallbackImage)
end
end
local renderOutlinedText = function (x,y, text, outlineWidth)
gfx.BeginPath();
@ -22,16 +32,21 @@ local tickTransitions = function (deltaTime)
end
local render = function (deltaTime, bpm, laneSpeed)
local render = function (deltaTime, bpm, laneSpeed, jacketPath)
if (not loadedJacketImage and jacketPath) then
loadJacketImage(jacketPath)
end
tickTransitions(deltaTime)
local y = 210;
gfx.BeginPath();
gfx.ImageRect(
0,
y,
884*0.85,
844*0.85,
374*0.85,
bgLeftImage,
1,
@ -49,6 +64,18 @@ local render = function (deltaTime, bpm, laneSpeed)
0
);
-- Draw jacket
gfx.BeginPath();
gfx.ImageRect(
32,
241.25, -- why does this need to be here?
105,
105,
jacketImage,
1,
0
);
gfx.FontSize(30);
gfx.TextAlign(gfx.TEXT_ALIGN_LEFT + gfx.TEXT_ALIGN_MIDDLE)
renderOutlinedText(25,y+247, "BPM", 2);