wip pause screen

This commit is contained in:
jill 2021-01-25 21:34:38 +03:00
parent e764082a80
commit 057e9d3d41
Signed by: oat
GPG key ID: DD83A9617A252385
3 changed files with 48 additions and 8 deletions

View file

@ -14,7 +14,7 @@ return function(headerheight, fishsprite, headerbuttons, sheets, balance, moneyf
local x = 19
local y = 3
for b = 1, 7 do
local hovered = mouseOverBox(x * size, y * size, sprites['header/buttonbg']:getWidth() * size, sprites['header/buttonbg']:getHeight() * size)
local hovered = mouseOverBox(x * size, y * size, sprites['header/buttonbg']:getWidth() * size, sprites['header/buttonbg']:getHeight() * size) and not paused
local btn = headerbuttons[b]
if (btn and not btn.open) or not btn then
@ -35,8 +35,8 @@ return function(headerheight, fishsprite, headerbuttons, sheets, balance, moneyf
end
tooltipText = btn.tooltipText
tooltipx = x + sprites['header/buttonbg']:getWidth() * size * 0.5 - tooltipText:getWidth()/2
tooltipy = y + sprites['header/buttonbg']:getWidth() * size
tooltipx = x * size + sprites['header/buttonbg']:getWidth() * size * 0.5 - tooltipText:getWidth()/2
tooltipy = y * size + sprites['header/buttonbg']:getWidth() * size
end
if btn then
@ -106,6 +106,16 @@ return function(headerheight, fishsprite, headerbuttons, sheets, balance, moneyf
x = x + incr
end
-- options text
local s = sprites['header/optionsbutton_hover']
local hovered = mouseOverBox(sw - 115 * size, size * (HEADER_HEIGHT - 65), s:getWidth() * size, s:getHeight() * size) and not paused
if hovered and love.mouse.isDown(1) then
love.graphics.draw(sprites['header/optionsbutton_down'], sw - 115 * size, size * (HEADER_HEIGHT - 65), 0, size, size)
elseif hovered then
love.graphics.draw(sprites['header/optionsbutton_hover'], sw - 115 * size, size * (HEADER_HEIGHT - 65), 0, size, size)
end
-- money count
if love.timer.getTime() % 0.25 < 0.125 and moneyflashtimer > 0 then love.graphics.draw(sprites['header/moneyflash'], sw * 0.851, (HEADER_HEIGHT - 29) * size, 0, size, size) end
love.graphics.setFont(fonts.continuum)
@ -114,7 +124,7 @@ return function(headerheight, fishsprite, headerbuttons, sheets, balance, moneyf
love.graphics.printf(balance, round(sw * 0.965 - leftpad), round((HEADER_HEIGHT - 25) * size), leftpad, 'right')
-- tooltips
if tooltipText then
if tooltipText and not paused then
love.graphics.setColor(254/255, 254/255, 199/255)
love.graphics.rectangle('fill', round(tooltipx - 5), round(tooltipy - 5), round(tooltipText:getWidth() + 10), round(tooltipText:getHeight() + 10))
love.graphics.setColor(2/255, 2/255, 2/255)

View file

@ -91,6 +91,7 @@ local headerbuttons = {
}
local sheets = {}
paused = false
local function fishsprite(size, hungry, anim)
-- anim is turn, swim, eat or die
@ -124,6 +125,8 @@ function self.load()
end
function self.update(dt)
if paused then dt = 0 end
bench.startBenchmark('update_buttons')
moneyflashtimer = moneyflashtimer - dt
@ -135,7 +138,7 @@ function self.update(dt)
local size = (love.graphics.getWidth()/640)
local hovered = mouseOverBox(x * size, y * size, sprites['header/buttonbg']:getWidth() * size, sprites['header/buttonbg']:getHeight() * size)
if btn.open and hovered then
if btn.open and hovered and not paused then
setCursor(cursors.hover)
end
@ -145,6 +148,13 @@ function self.update(dt)
x = x + incr
end
local s = sprites['header/optionsbutton_hover']
local size = love.graphics.getWidth() / 640
local hovered = mouseOverBox(love.graphics.getWidth() - 115 * size, size * (HEADER_HEIGHT - 65), s:getWidth() * size, s:getHeight() * size)
if hovered and not paused then
setCursor(cursors.hover)
end
bench.stopBenchmark('update_buttons')
bench.startBenchmark('update_food')
@ -208,7 +218,14 @@ function self.draw()
end
function self.mousepressed(x, y, b)
if b == 1 then
if b == 1 and not paused then
local s = sprites['header/optionsbutton_hover']
local size = love.graphics.getWidth() / 640
local hovered = mouseOverBox(love.graphics.getWidth() - 115 * size, size * (HEADER_HEIGHT - 65), s:getWidth() * size, s:getHeight() * size)
if hovered then
paused = true
end
for _,m in ipairs(money) do
local dist = math.abs(x - m.x * love.graphics.getWidth()) + math.abs(y - m.y * love.graphics.getHeight())
if dist < sheets.coin1.width/2 and not m.collected then
@ -227,7 +244,7 @@ function self.mousepressed(x, y, b)
end
end
if b == 1 and y > HEADER_HEIGHT then
if b == 1 and y > HEADER_HEIGHT and not paused then
if starpotionequipped then
table.insert(food, constr.food(x/love.graphics.getWidth(), y/love.graphics.getHeight(), 4))
playSound('dropfood')
@ -249,7 +266,7 @@ function self.mousepressed(x, y, b)
local headerheight = HEADER_HEIGHT * love.graphics.getWidth()/640
local size = headerheight / HEADER_HEIGHT
if b == 1 then
if b == 1 and not paused then
local x = 19
for i = 1, 7 do
local hovered = mouseOverBox(x * size, 3 * size, sprites['header/buttonbg']:getWidth() * size, sprites['header/buttonbg']:getHeight() * size)