PeaAshMeter d4e351b080 Introduce Rect class and UIElement base class for layout
Refactor skill button and row to use UIElement with Rect bounds and
transform Update layout references and coordinate calculations
accordingly
2025-11-04 06:59:03 +03:00

64 lines
2.0 KiB
Lua

-- CameraLoader = require 'lib/camera'
local character = require "lib/character/character"
require "lib/tree"
local testLayout = require "lib.simple_ui.level.layout"
function love.conf(t)
t.console = true
end
function love.load()
character.spawn("Foodor", Tree.assets.files.sprites.character)
character.spawn("Baris", Tree.assets.files.sprites.character, Vec3 { 3, 3 })
love.window.setMode(1080, 720, { resizable = true, msaa = 4, vsync = true })
end
local lt = "0"
function love.update(dt)
local t1 = love.timer.getTime()
Tree.controls:poll()
testLayout:update(dt) -- логика UI-слоя должна отработать раньше всех, потому что нужно перехватить жесты и не пустить их дальше
Tree.panning:update(dt)
Tree.level:update(dt)
Tree.controls:cache()
local t2 = love.timer.getTime()
lt = string.format("%.3f", (t2 - t1) * 1000)
end
local function coverTransform(img, containerW, containerH)
local iw, ih = img:getWidth(), img:getHeight()
local scale = math.max(containerW / iw, containerH / ih)
local sw, sh = iw * scale, ih * scale
local offsetX = (containerW - sw) * 0.5
local offsetY = (containerH - sh) * 0.5
return scale, offsetX, offsetY, sw, sh
end
local dt = "0"
function love.draw()
local t1 = love.timer.getTime()
local scale, ox, oy = coverTransform(Tree.assets.files.cats, love.graphics.getWidth(), love.graphics.getHeight())
love.graphics.push()
love.graphics.translate(ox, oy)
love.graphics.scale(scale, scale)
love.graphics.draw(Tree.assets.files.cats, 0, 0)
love.graphics.pop()
Tree.level.camera:attach()
Tree.level:draw()
Tree.level.camera:detach()
testLayout:draw()
love.graphics.setColor(1, 1, 1)
local stats = "fps: " .. love.timer.getFPS() .. " lt: " .. lt .. " dt: " .. dt
love.graphics.print(stats, 10, 10)
local t2 = love.timer.getTime()
dt = string.format("%.3f", (t2 - t1) * 1000)
end