mirror of
https://github.com/tanema/light_world.lua.git
synced 2024-12-24 20:24:19 +00:00
Merge branch 'master' of github.com:tanema/light_world.lua
This commit is contained in:
commit
6314e1907b
@ -696,7 +696,7 @@ function body:drawPolyShadow(light)
|
|||||||
|
|
||||||
for i = 1, #self.data, 2 do
|
for i = 1, #self.data, 2 do
|
||||||
local vertex = vector(self.data[i], self.data[i + 1])
|
local vertex = vector(self.data[i], self.data[i + 1])
|
||||||
local nextVertex = vector(self.data[(i + 2) % 8], self.data[(i + 2) % 8 + 1])
|
local nextVertex = vector(self.data[(i + 2) % #self.data], self.data[(i + 2) % #self.data + 1])
|
||||||
local startToEnd = nextVertex - vertex
|
local startToEnd = nextVertex - vertex
|
||||||
if vector(startToEnd.y, -startToEnd.x) * (vertex - lightPosition) > 0 then
|
if vector(startToEnd.y, -startToEnd.x) * (vertex - lightPosition) > 0 then
|
||||||
local point1 = (lh - (vertex * light.z))/height_diff
|
local point1 = (lh - (vertex * light.z))/height_diff
|
||||||
|
12
lib/init.lua
12
lib/init.lua
@ -298,15 +298,23 @@ function light_world:newBody(type, ...)
|
|||||||
return self.bodies[#self.bodies]
|
return self.bodies[#self.bodies]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function light_world:is_body(target)
|
||||||
|
return target.type ~= nil
|
||||||
|
end
|
||||||
|
|
||||||
|
function light_world:is_light(target)
|
||||||
|
return target.angle ~= nil
|
||||||
|
end
|
||||||
|
|
||||||
function light_world:remove(to_kill)
|
function light_world:remove(to_kill)
|
||||||
if to_kill:is_a(Body) then
|
if self:is_body(to_kill) then
|
||||||
for i = 1, #self.bodies do
|
for i = 1, #self.bodies do
|
||||||
if self.bodies[i] == to_kill then
|
if self.bodies[i] == to_kill then
|
||||||
table.remove(self.bodies, i)
|
table.remove(self.bodies, i)
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
elseif to_kill:is_a(Light) then
|
elseif self:is_light(to_kill) then
|
||||||
for i = 1, #self.lights do
|
for i = 1, #self.lights do
|
||||||
if self.lights[i] == to_kill then
|
if self.lights[i] == to_kill then
|
||||||
table.remove(self.lights, i)
|
table.remove(self.lights, i)
|
||||||
|
Loading…
Reference in New Issue
Block a user