0

我试图通过使用 ROBLOX 的新绳索约束和零件网格来制作一种“布料模拟”。

目前,我已经制作了一个由 .4x.4x.4 块组成的 10x10 网格,现在我想用绳索约束将每个网格连接起来。

我已经在网格中的每个部分的行和列之后命名(例如:网格中的第一部分是 1 1,最后一个是 10 10)

然后我使用它们的名称和字符串操作来获取每个单独的网格部分周围的部分。

然后我将 4 个附件插入每个部分和 4 个绳索约束。这是代码(ab 代表上面,be 代表下面等):

for i2 = 1, #gParts do
    local ab = tostring(tonumber(gParts[i2].Name:match("^(%S+)"))-5).."     "..tostring(tonumber(string.sub(gParts[i2].Name,-1))-1)
    local be = tostring(tonumber(gParts[i2].Name:match("^(%S+)"))+5).."     "..tostring(tonumber(string.sub(gParts[i2].Name,-1))+1)
    local le = tostring(tonumber(gParts[i2].Name:match("^(%S+)"))-1).."     "..tostring(tonumber(string.sub(gParts[i2].Name,-1)))
    local ri = tostring(tonumber(gParts[i2].Name:match("^(%S+)"))+1).."     "..tostring(tonumber(string.sub(gParts[i2].Name,-1)))
    for i3 = 1, 4 do    
        local atchm = Instance.new("Attachment",gParts[i2])
        local ropeconst = Instance.new("RopeConstraint",gParts[i2])
    end
end

绳索约束有两个我需要使用的主要属性;附件 1 和附件 2。

4

1 回答 1

0

我从来没有真正搞砸过新的约束,但我相信这应该可行。

请记住,约束是 Roblox 中的一个新实例,并且它们可能仍处于试验阶段。

X = 10;
Y = 10;
spread = 4; 
--Spread is the Length of the Constraint. You may have to increase this, especially if it's stiff.

function createAttachments()
    --This is under the assumption that gParts is a table filled with the Part Instances
    for i,v in pairs(gParts) do
        local atch = Instance.new("Attachment",v);
    end;
end;

function connectConstraints(part,x,y)
    if x ~= X then
        connectRight = x+1.." "..y;
    end;
    if y ~= Y then
        connectDown = x.." "..y+1;
    end;
    if connectRight ~= nil then
        local ropeconst = Instance.new("RopeConstraint",part);
        ropeconst.Length = spread;
        ropeconst.Attachment0 = part.Attachment;
        ropeconst.Attachment1 = connectRight.Attachment;
    end;
    if connectLeft ~= nil then
        local ropeconst = Instance.new("RopeConstraint",part);
        ropeconst.Length = spread;
        ropeconst.Attachment0 = part.Attachment;
        ropeconst.Attachment1 = connectLeft.Attachment;
    end
end

createAttachments();
connectConstraints();

如果这对您不起作用,请告诉我。如果需要,我可以从网站本身与您联系。

于 2016-08-25T14:42:24.617 回答