commit 0ce34bd35ca2167afac80860d5db5d81beb13ab5 Author: Hyeonung Baek Date: Thu Dec 26 20:09:41 2024 +0900 Initial Commit diff --git a/bordered_window.lua b/bordered_window.lua new file mode 100644 index 0000000..320d801 --- /dev/null +++ b/bordered_window.lua @@ -0,0 +1,17 @@ +local window = require("window") + +local w = {} + +function w.new(inner, x, y, w, h) + local mt = { __index = inner } + local a = {} + setmetatable(a, mt) + + function a:draw() + inner:draw() + love.graphics.rectangle("line", 0, 0, w, h) + end + + local r = window.new(a, x, y, h, w) + return r +end diff --git a/main.lua b/main.lua new file mode 100644 index 0000000..77987de --- /dev/null +++ b/main.lua @@ -0,0 +1,20 @@ +local window = require("window") +local bwindow = require("bordered_window") +--local button = require("button") + +function love.load() + b = {} + function b.draw() + love.graphics.print("A", 10, 10) + end + + ba = bwindow.new(b, 200, 200, 50, 50) + -- canvas = love.graphics.newCanvas() +end + +function love.update(dt) +end + +function love.draw() + ba:draw() +end diff --git a/window.lua b/window.lua new file mode 100644 index 0000000..3b9a448 --- /dev/null +++ b/window.lua @@ -0,0 +1,33 @@ +local w = {} + +function w.new(inner, x, y, w, h) + local r = { + transform = love.math.newTransform(x, y), + width = w, + height = h + } + + function r:transformPoint(x, y) + local x, y = transform:transformPoint(x, y) + if 0 <= x and x <= width and 0 <= y and y <= height then + return x, y + else + return nil + end + end + + function r:mousepressed(m, x, y) + return inner:mousepressed(m, x, y) + end + + function r:draw() + love.graphics.push() + love.graphics.setTransform(self.transform) + inner:draw() + love.graphics.pop() + end + + return r +end + +return w