2010-11-24 54 views

回答

0

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

0

那么,还有另一种更现实,更不可能失败的方式,你可以简单地做一个砖块,并在功能上,例如onClick(),你可以使其消失,并使用透明度使锚定砖变得可见,并使原始砖块nonCanCollide,以及新替代品的位置朝着这个方向移动,而且,我倾向于使用BodyPosition,因为它适用于位置,可以用于锚定和非锚定砖块(不适合非锚定),而且体速度适用于未固定的砖块朝某个方向移动,这有点儿,我说它不太可能会失败,因为如果替换失败,那么原始砖块仍然存在,并且您可以创建备份脚本以保存它休息。

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

1

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

1)在另一块Brick的方向上有一个强大的BodyVelocity,CanCollide为0。另一方面,它会等待很短的时间,然后自行移除。 2)您可以使用CFrame移动砖块,使用CFrame.new(Brick1.Pos,Brick2.Pos)找到角度,并使用框架系统将该CFrame添加到Brick1 CFrame中,从而创建“运动”。当“帧”结束时,您将移除砖块。

-1

用传送带将其滑入并作出砖cancollide并使其脂肪thantheÇ

0

从我可以告诉,你要使用C框架。 为了能够使两块砖在相同的空间中移动(两块砖的CanCollide = true),您必须使用CFrame。所有的“身体”实例(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() 

确保第二砖是比第一次更大。

0

您可以制作onClick脚本,该脚本将使砖块有速度将第二块砖滑入到位,然后使用新的onClick脚本来使速度负向影响,以便将第二块砖拉回。