Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

i need help with making a net with verlet integration?

Asked by
cmdr33 0
7 years ago
Edited 7 years ago

i am trying to make a soccer net using verlet integration...i have the script but i dont know how to put it to work...please help?

local apart = game.Workspace.AnchorPart; local ppart = game.Workspace.PlanePart; local previousTime = tick();

function cloth(corner, width, height, length)
local points = {}; local constraints = {}; local m = math.sqrt(length^2 + length^2); for y = 0, height do for x = 0, width do points[y] = points[y] or {}; points[y][x] = point.new((corner * CFrame.new(x, y, 0)).p); if x ~= 0 then local c = constraint.new(points[y][x], points[y][x-1], length); c.line.Parent = game.Workspace.CurrentCamera; table.insert(constraints, c); end; if y ~= 0 then local c = constraint.new(points[y][x], points[y-1][x], length); c.line.Parent = game.Workspace.CurrentCamera; table.insert(constraints, c); --[[ -- structure makes a difference! if x < width then local c = constraint.new(points[y][x], points[y-1][x+1], m); c.line.Parent = game.Workspace.CurrentCamera; table.insert(constraints, c); end; --]] end; if y == 0 then points[y][x].anchored = true; end; end; end; return points, constraints; end;

local width, height, length = 10, 10, 2; local cpoints, cconstraints = cloth(apart.CFrame, width, height, length);

function update() local delta = tick() - previousTime; previousTime = tick(); local col = collision.new(ppart); for i = 0, height do if i == 0 then for i2 = 0, width do local x = cpoints[i][i2]; x.position = (apart.CFrame * CFrame.new(i2 * length, 0, 0)).p; end; end; for i2 = 0, width do local x = cpoints[i][i2]; x:update(delta, 0.9985); --[[ -- collision local lide = col:pointToPlanes(x.position); if lide then x.position = lide; end; --]] end; end; for i = 1, 15 do for _, c in ipairs(cconstraints) do c:solve(); end; end; for _, c in ipairs(cconstraints) do c:draw(); end; end;

game:getService("RunService").Stepped:connect(update);

0
Please edit your post to include the script in question. Pyrondon 2089 — 7y
0
duckwit, read my freaking question again cmdr33 0 — 7y

Answer this question