0

我必须使用身体姿势吗?体速?请帮忙

4

6 回答 6

1

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

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

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

于 2010-11-25T02:34:14.213 回答
0

“消失在另一个人中”是什么意思?您可以使用多种方法来模拟滑动。您可以使用 CFrame、BodyVelocity、BodyForce 甚至是 BodyPosition。您甚至可以制作没有摩擦的砖块并在其上滑动。你还有什么需要知道的吗?如果是这样,请发表评论。

于 2010-11-24T16:53:25.430 回答
0

您可以制作一个onClick脚本,使砖块具有将第二块砖块滑入到位的速度,然后创建一个新onClick脚本来使速度的影响为负,以便将第二块砖块拉回。

于 2013-05-08T01:39:38.847 回答
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()

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

于 2013-01-04T17:54:05.707 回答
0

好吧,还有另一种更现实且不太可能失败的方法,您可以简单地制作一个砖块,然后在函数上,例如 onClick(),您可以使用透明度使其消失并让锚定的砖块变得可见,并使原始砖块 nonCanCollide ,并且新替代品的位置向方向移动,另外,我倾向于使用 BodyPosition,因为它适用于位置,可用于锚定和非锚定砖(非锚定也不适用),bodyvelocity 用于非锚定砖移动在一个有点乏味的方向,好吧,我说它不太可能失败,因为如果替代失败,那么原来的砖仍然在那里,如果子坏了,你可以制作一个备份脚本来保存它。

我希望这能有所帮助。-奥比安。

于 2010-11-24T21:31:10.987 回答
-1

使用传送带将其滑入并使砖可以碰撞并使其比c更肥

于 2011-04-23T02:34:40.810 回答