98 lines
2.3 KiB
Lua
98 lines
2.3 KiB
Lua
|
|
local DiffRectangle = require('components.diff_rectangle');
|
|
|
|
local desw = 1080;
|
|
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();
|
|
gfx.FillColor(0,0,0,255);
|
|
gfx.Text(text, x-outlineWidth, y+outlineWidth);
|
|
gfx.Text(text, x-outlineWidth, y-outlineWidth);
|
|
gfx.Text(text, x+outlineWidth, y+outlineWidth);
|
|
gfx.Text(text, x+outlineWidth, y-outlineWidth);
|
|
|
|
gfx.FillColor(255,255,255,255);
|
|
gfx.Text(text, x, y);
|
|
end
|
|
|
|
local tickTransitions = function (deltaTime)
|
|
|
|
end
|
|
|
|
local render = function (deltaTime, bpm, laneSpeed, jacketPath, diff, level)
|
|
if (not loadedJacketImage and jacketPath) then
|
|
loadJacketImage(jacketPath)
|
|
end
|
|
|
|
tickTransitions(deltaTime)
|
|
|
|
|
|
local y = 210;
|
|
|
|
gfx.BeginPath();
|
|
gfx.ImageRect(
|
|
0,
|
|
y,
|
|
844*0.85,
|
|
374*0.85,
|
|
bgLeftImage,
|
|
1,
|
|
0
|
|
);
|
|
|
|
gfx.BeginPath();
|
|
gfx.ImageRect(
|
|
200,
|
|
y,
|
|
1016*0.85,
|
|
122*0.85,
|
|
bgRightImage,
|
|
1,
|
|
0
|
|
);
|
|
|
|
-- Draw jacket
|
|
gfx.BeginPath();
|
|
gfx.ImageRect(
|
|
32,
|
|
241.25, -- why does this need to be here?
|
|
105,
|
|
105,
|
|
jacketImage,
|
|
1,
|
|
0
|
|
);
|
|
|
|
-- Draw diff rectangle
|
|
DiffRectangle.render(deltaTime, 31, 350, 0.84, diff, level);
|
|
|
|
gfx.FontSize(30);
|
|
gfx.TextAlign(gfx.TEXT_ALIGN_LEFT + gfx.TEXT_ALIGN_MIDDLE)
|
|
renderOutlinedText(25,y+247, "BPM", 2);
|
|
renderOutlinedText(25,y+281, "LANE-SPEED", 2);
|
|
|
|
local actualLaneSpeed = (bpm*laneSpeed)/100
|
|
|
|
gfx.TextAlign(gfx.TEXT_ALIGN_RIGHT + gfx.TEXT_ALIGN_MIDDLE);
|
|
renderOutlinedText(260,y+247, string.format("%.0f", bpm), 2);
|
|
renderOutlinedText(260,y+281, string.format("%.2f", actualLaneSpeed), 2);
|
|
end
|
|
|
|
return {
|
|
render=render
|
|
} |