【问题标题】:How to make a sliding brick that dissapears into another on ROBLOX如何制作一个在 ROBLOX 上消失的滑动砖
【发布时间】:2011-05-14 23:37:09
【问题描述】:

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

【问题讨论】:

    标签: scripting slide building roblox


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            【解决方案5】:

            据我所知,您想使用 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()
            

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

            【讨论】:

              【解决方案6】:

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

              【讨论】:

                猜你喜欢
                • 2020-01-04
                • 2018-06-14
                • 2016-12-28
                • 1970-01-01
                • 1970-01-01
                • 2011-05-15
                • 2019-02-11
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多