mirror of
https://github.com/tanema/light_world.lua.git
synced 2024-12-24 20:24:19 +00:00
52 lines
1.5 KiB
Lua
52 lines
1.5 KiB
Lua
local LightWorld = require "lib"
|
|
local lightWorld, lightMouse
|
|
local image, image_normal, glow, circleTest, rectangleTest, imageTest, objectTest
|
|
|
|
local box_locations = {
|
|
{200, 200},
|
|
{600, 200},
|
|
{600, 400},
|
|
{200, 400},
|
|
}
|
|
|
|
local function load()
|
|
image = love.graphics.newImage("examples/gfx/machine.png")
|
|
normal = love.graphics.newImage("examples/gfx/machine_normal.png")
|
|
glow = love.graphics.newImage("examples/gfx/machine_glow.png")
|
|
-- create light world
|
|
lightWorld = LightWorld({ambient = {0.21,0.21,0.21}})
|
|
-- create light
|
|
lightMouse = lightWorld:newLight(0, 0, 255, 127, 63, 300)
|
|
lightMouse:setGlowStrength(0.3)
|
|
-- create shadow bodys
|
|
for i, v in ipairs(box_locations) do
|
|
imageTest = lightWorld:newImage(image, v[1], v[2])
|
|
imageTest:setNormalMap(normal)
|
|
imageTest:setGlowMap(glow)
|
|
end
|
|
end
|
|
|
|
local function update(dt, x, y, scale)
|
|
love.window.setTitle("Light vs. Shadow Engine (FPS:" .. love.timer.getFPS() .. ")")
|
|
x, y, scale = x or 0, y or 0, scale or 1
|
|
lightMouse:setPosition((love.mouse.getX() - x)/scale, (love.mouse.getY() - y)/scale)
|
|
lightWorld:update(dt)
|
|
lightWorld:setTranslation(x, y, scale)
|
|
end
|
|
|
|
local function draw()
|
|
lightWorld:draw(function()
|
|
love.graphics.clear(1, 1, 1)
|
|
love.graphics.setColor(1, 1, 1)
|
|
for i, v in ipairs(box_locations) do
|
|
love.graphics.draw(image, v[1] - image:getWidth() * 0.5, v[2] - image:getHeight() * 0.5)
|
|
end
|
|
end)
|
|
end
|
|
|
|
return {
|
|
load = load,
|
|
update = update,
|
|
draw = draw,
|
|
}
|