+ score panel with things
This commit is contained in:
parent
e7de7626ab
commit
60863b34d3
|
@ -5,6 +5,7 @@ local Banner = require('gameplay.banner')
|
||||||
local CritLine = require('gameplay.crit_line')
|
local CritLine = require('gameplay.crit_line')
|
||||||
local Console = require('gameplay.console')
|
local Console = require('gameplay.console')
|
||||||
local UserPanel = require('gameplay.user_panel')
|
local UserPanel = require('gameplay.user_panel')
|
||||||
|
local ScorePanel = require('gameplay.score_panel')
|
||||||
local Gauge = require('gameplay.gauge')
|
local Gauge = require('gameplay.gauge')
|
||||||
local Chain = require('gameplay.chain')
|
local Chain = require('gameplay.chain')
|
||||||
local LaserAlert = require('gameplay.laser_alert')
|
local LaserAlert = require('gameplay.laser_alert')
|
||||||
|
@ -13,7 +14,9 @@ local resx, resy = game.GetResolution()
|
||||||
local desw, desh;
|
local desw, desh;
|
||||||
local scale;
|
local scale;
|
||||||
|
|
||||||
|
local maxChain = 0;
|
||||||
local chain = 0;
|
local chain = 0;
|
||||||
|
local score = 0;
|
||||||
|
|
||||||
function resetLayoutInformation()
|
function resetLayoutInformation()
|
||||||
resx, resy = game.GetResolution()
|
resx, resy = game.GetResolution()
|
||||||
|
@ -29,6 +32,7 @@ function render(deltaTime)
|
||||||
Banner.render(deltaTime);
|
Banner.render(deltaTime);
|
||||||
|
|
||||||
UserPanel.render(deltaTime);
|
UserPanel.render(deltaTime);
|
||||||
|
ScorePanel.render(deltaTime, score, maxChain)
|
||||||
|
|
||||||
Gauge.render(
|
Gauge.render(
|
||||||
deltaTime,
|
deltaTime,
|
||||||
|
@ -59,11 +63,14 @@ function render_outro(deltaTime, clearState)
|
||||||
end
|
end
|
||||||
|
|
||||||
function update_score(newScore)
|
function update_score(newScore)
|
||||||
|
score = newScore
|
||||||
end
|
end
|
||||||
|
|
||||||
function update_combo(newCombo)
|
function update_combo(newCombo)
|
||||||
chain = newCombo
|
chain = newCombo
|
||||||
|
if (chain > maxChain) then
|
||||||
|
maxChain = chain;
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function near_hit(wasLate)
|
function near_hit(wasLate)
|
||||||
|
|
|
@ -0,0 +1,71 @@
|
||||||
|
|
||||||
|
local bgImage = gfx.CreateSkinImage("gameplay/score_panel/bg.png", 0)
|
||||||
|
|
||||||
|
local desw = 1080;
|
||||||
|
local desh = 1920;
|
||||||
|
|
||||||
|
function load_number_image(path)
|
||||||
|
local images = {}
|
||||||
|
for i = 0, 9 do
|
||||||
|
images[i + 1] = gfx.CreateSkinImage(string.format("%s/%d.png", path, i), 0)
|
||||||
|
end
|
||||||
|
return images
|
||||||
|
end
|
||||||
|
|
||||||
|
local scoreNumbers = load_number_image('score_num')
|
||||||
|
|
||||||
|
function draw_number(x, y, alpha, num, digits, images, is_dim, scale, kern)
|
||||||
|
scale = scale or 1;
|
||||||
|
kern = kern or 1;
|
||||||
|
local tw, th = gfx.ImageSize(images[1])
|
||||||
|
tw = tw * scale;
|
||||||
|
th = th * scale;
|
||||||
|
x = x + (tw * (digits - 1)) / 2
|
||||||
|
y = y - th / 2
|
||||||
|
for i = 1, digits do
|
||||||
|
local mul = 10 ^ (i - 1)
|
||||||
|
local digit = math.floor(num / mul) % 10
|
||||||
|
local a = alpha
|
||||||
|
if is_dim and num < mul then
|
||||||
|
a = 0.4
|
||||||
|
end
|
||||||
|
gfx.BeginPath()
|
||||||
|
gfx.ImageRect(x, y, tw, th, images[digit + 1], a, 0)
|
||||||
|
x = x - (tw * kern)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local tickTransitions = function (deltaTime)
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
local render = function (deltaTime, score, maxChain)
|
||||||
|
tickTransitions(deltaTime)
|
||||||
|
|
||||||
|
local x = desw - 740*0.61; -- WHY IS THERE DIFFERENT SCALING FOR THIS TOO????
|
||||||
|
local y = 250;
|
||||||
|
|
||||||
|
gfx.BeginPath();
|
||||||
|
gfx.ImageRect(
|
||||||
|
x,
|
||||||
|
y,
|
||||||
|
740*0.61,
|
||||||
|
320*0.61,
|
||||||
|
bgImage,
|
||||||
|
1,
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
|
draw_number(x+142, y + 83, 1.0, score/10000, 4, scoreNumbers, true, 0.38, 1.12)
|
||||||
|
draw_number(x+338, y + 90, 1.0, score, 4, scoreNumbers, true, 0.28, 1.12)
|
||||||
|
|
||||||
|
-- Draw max chain
|
||||||
|
gfx.LoadSkinFont('Digital-Serial-Bold.ttf')
|
||||||
|
gfx.TextAlign(gfx.TEXT_ALIGN_RIGHT + gfx.TEXT_ALIGN_MIDDLE)
|
||||||
|
gfx.FontSize(30)
|
||||||
|
gfx.Text(string.format("%04d", maxChain), x+170, y+155);
|
||||||
|
end
|
||||||
|
|
||||||
|
return {
|
||||||
|
render=render
|
||||||
|
}
|
Before Width: | Height: | Size: 119 KiB After Width: | Height: | Size: 119 KiB |
Loading…
Reference in New Issue