generated from sage/tiny-ecs-love-template
19 lines
593 B
Lua
19 lines
593 B
Lua
local world = require("world")
|
|
local min = math.min
|
|
|
|
world:addEntity({ gravity = -300 })
|
|
|
|
local gravities = world:filteredSystem("gravities", { gravity = T.number })
|
|
|
|
world:filteredSystem("changeGravity", { changeGravityTo = T.number }, function(e, _, _)
|
|
for _, ge in pairs(gravities.entities) do
|
|
ge.gravity = e.changeGravityTo
|
|
end
|
|
end)
|
|
|
|
world:filteredSystem("fall", { velocity = T.XyPair, mass = T.number }, function(e, dt)
|
|
for _, ge in pairs(gravities.entities) do
|
|
e.velocity.y = min(400, e.velocity.y - (ge.gravity * dt * e.mass) - (0.5 * dt * dt))
|
|
end
|
|
end)
|