根据距离移动 Y 轴上的位置

我正在尝试制作一个游戏,你在一个正方形里,当你向两侧移动时,会出现一些部件来阻挡你。

我已经做到了一个好的程度,除了一些问题:

当未抬起时,部件会移到方块下面,我希望它们在未抬起时可见

当你跳跃时,部件会往下移动,使得逃脱变得简单。

部件太早就会升起

这是处理墙壁定位的代码。

for _, v in pairs(model:GetChildren()) do
    if string.sub(v.Name,1,4) == "Wall" then
        local walls = {}
        walls[v] = {v.CFrame,Vector3.new(1, 1, 1)}
        game:GetService("RunService").RenderStepped:connect(function()
            if(workspace[game.Players.LocalPlayer.Name]:FindFirstChild("HumanoidRootPart")) then
                local mag = (v.Position - workspace[game.Players.LocalPlayer.Name]:FindFirstChild("HumanoidRootPart").Position).magnitude
                sizeFactor = math.floor(mag)
                v.CFrame = walls[v][1]*CFrame.new(0,-sizeFactor+(walls[v][1].Y*1.8),0)

            end
        end)
    end
end

你可以在这里看到我的游戏:https://www.roblox.com/games/400391033/Marble-walls

点赞
用户3196828
用户3196828
# 见代码注释。
for _, v in pairs(model:GetChildren()) do
    if string.sub(v.Name,1,4) == "Wall" then
        local walls = {}
        walls[v] = {v.CFrame,Vector3.new(1, 1, 1)}
        game:GetService("RunService").RenderStepped:connect(function()
            if(workspace[game.Players.LocalPlayer.Name]:FindFirstChild("HumanoidRootPart")) then
                local mag = (v.Position - workspace[game.Players.LocalPlayer.Name]:FindFirstChild("HumanoidRootPart").Position).magnitude
                if (mag <= 2) then --[[
                    目前的问题是你从没有将magnitude用于任何功能,你基本上在玩家刷新时就改变了y轴……因此它会在太早的时候进行。
                    kappa
                ]]
                    sizeFactor = math.floor(mag)
                    v.CFrame = walls[v][1]*CFrame.new(0,-sizeFactor+(walls[v][1].Y*1.8),0)
                end;
            end
        end)
    end
end
2016-04-21 03:59:57