如何在ROBLOX上制作一个消失在另一个中的滑动砖

时间:2010-11-24 09:10:56

标签: scripting slide building roblox

我必须使用体型吗? BodyVelocity?请帮助

6 个答案:

答案 0 :(得分:1)

如果我明白你想要尝试什么,有很多方法可以做这样的事情。为了有效地“滑入另一块砖并消失”,你可以做两件事:

1)在另一块砖的方向上有一个强大的BodyVelocity,其CanCollide为0.当砖与另一块砖接触时,它会等待很短的时间,然后自行移除。

2)你可以使用CFrame移动砖块,使用CFrame.new(Brick1.Pos,Brick2.Pos)找到角度,并使用框架系统将该CFrame添加到Brick1 CFrame中,创建“移动”的效果”。当“帧”结束时,你会删除砖块。

答案 1 :(得分:0)

什么“消失在另一个”意味着什么?您可以使用多种方式来模拟滑动。您可以使用CFrame,BodyVelocity,BodyForce甚至BodyPosition。你甚至可以制作一块没有摩擦力的砖块并将其滑动。还有什么需要知道的吗?如果是,请评论。

答案 2 :(得分:0)

嗯,还有另一个更现实,更不可能失败的方式,你可以简单地做一个砖,并在功能上,例如onClick(),你可以使它消失,锚定砖变得可见,使用透明度,并使原来的Brick nonCanCollide,以及新替代品的位置朝着这个方向移动,我也倾向于使用BodyPosition,因为它适用于该位置,可以用于锚定和非锚定砖(不适合非锚定),而bodyvelocity适用于nonanchored砖块向一个方向移动,这有点儿,好吧,我说它不太可能失败,因为如果替代品失败了,那么原始的砖块仍然存在,你可以制作一个备份脚本来保存它如果子断裂

我希望其中一些有帮助。 -Orbian。

答案 3 :(得分:0)

据我所知,你想使用CFrame。 为了能够使两块砖在同一空间中移动(两块砖都具有CanCollide = true),你必须使用CFrame。所有“Body”实例(BodyVelocity,BodyPosition)在砖块上施加力,因此不能使它们在同一空间中移动。

如果你想要一个推拉门,你可以使用这个脚本:

local StartPosition = script.Parent.CFrame
local ToPosition = workspace.TargetPart.CFrame -- Make sure this is right

function Open()
    for i=0,100,1 do
        script.Parent.CFrame = StartPosition + CFrame.new(StartPosition.p,ToPosition.p).lookVector *     ((StartPosition.p-ToPosition.p).magnitude/100) * i
        wait(0.01)
    end
end

function Close()
    for i=100,0,-1 do
        script.Parent.CFrame = StartPosition + CFrame.new(StartPosition.p,ToPosition.p).lookVector *     ((StartPosition.p-ToPosition.p).magnitude/100) * i
        wait(0.01)
    end
end

local Moving = false
local IsOpen = false
function Toggle()
    if Moving then return end
    Moving = true

    if IsOpen then
        Close()
    else
        Open()
    end
    IsOpen = not IsOpen

    Moving = false
end

-- Following code is just for testing
Toggle()
wait(1)
Toggle()

确保第二块砖比第一块砖大。

答案 4 :(得分:0)

你可以制作一个onClick脚本,使砖有速度将第二块砖滑动到位,然后有一个新的onClick脚本,使速度的影响为负,这样它就会拉动第二块砖退出。

答案 5 :(得分:-1)

使用传送带将其滑入并制成砖状cancollide并使其变胖c