【问题标题】:ROBLOX Cframe How do I do it?ROBLOX Cframe 我该怎么做?
【发布时间】:2011-05-17 14:23:15
【问题描述】:

我如何在 ROBLOX 上为任何类型的积木构建框架![alt text][1]

【问题讨论】:

  • Roblox 在 Stack Overflow 上?我不知道他们有那个......

标签: roblox


【解决方案1】:
Workspace.Brick.CFrame = CFrame.new(0, 0, 0)

这使得工作区中的 Brick 的 CFrame 为 0、0、0(在底座内部)

Workspace.Brick.CFrame = Workspace.Brick.CFrame * CFrame.Angles(0, 0, 0)

这使得工作区中的 Brick 有了倾斜。使用 math.pi*x ,其中每个 x = 1 使砖块朝该方向倾斜 1 弧度。

【讨论】:

    【解决方案2】:

    使用 CFrame 库和对象成员来控制 CFrame 值。例如:

    CFrame.new()
    

    将创建一个新的 CFrame,其矩阵设置为单位矩阵。您可以通过传入 3 个原始 X、Y、Z 值或 Vector3 值来为 CFrame 设置位置。

    CFrame.new(Vector3.new(0, 5, 0) == CFrame.new(0, 5, 0)
    

    还可以向矢量旋转。

    CFrame.new(Vector3.new(0, 5, 0), CFrame.new(0, 2, 0))
    

    通过使用 CFrame.Angles 函数,您可以创建欧拉角来旋转 CFrame。

    CFrame.new() * CFrame.Angles(math.rad(20), 0, 0)
    

    请注意,当使用欧拉角时,角度以弧度表示,因此为了将弧度转换为度数,我使用了 Lua 中的 math.rad 函数。还有 CFrame 值的成员,因此您可以从 CFrame 中检索其旋转。

    CFrame.new():toEulerAnglesXYZ()
    

    还有一些属性,例如“p”表示位置,“lookVector”表示 CFrame 指向的向量。

    CFrame.new().p
    CFrame.new().lookVector
    

    可以使用组件访问矩阵本身。

    CFrame.new():components()
    

    还可以使用对象和世界坐标更改 CFrame 值。

    CFrame.new():toObjectSpace(CFrame.new()) -- a tad pointless
    

    您还可以将算术运算应用于 CFrame(以及 CFrame/Vector3 相互)

    CFrame.new() + CFrame.new(0, 2, 0)
    

    这只是我脑海中的一些初步信息,因此我无法保证这些信息的准确性。查看 ROBLOX Wiki 了解更多信息。

    【讨论】:

      【解决方案3】:

      首先,去你的位置,然后点击 RobloxStudio(左边的黑色按钮,上面写着“iii”),然后,点击工具箱按钮(有 2 个工具,橙色和蓝色),然后,点击“向下箭头”(黑色) 然后,单击免费模型。之后单击搜索栏并输入“编辑 cframe”,然后单击空白点,然后单击“1”,但首先放入至少 2 个砖块,然后单击一个砖块并使用显示的 gui。仅此而已。

      【讨论】:

        【解决方案4】:

        Game.Selection:Get()1 v.CFrame = v.CFrame + Vector3.new(0, 0, 0)

        这是我更喜欢使用的,尽管你可以更改/添加一些东西,比如 EulerAnglesxyz()

        看起来像这样:

        Game.Selection:Get()1 v.CFrame = v.CFrame + Vector3.new(0, 0, 0) 和 v.CFrame = v.CFrame + EulerAnglexXYZ(0, 0, 0)

        如果我可能不正确,请纠正我。 谢谢, iTerm

        【讨论】:

          【解决方案5】:

          http://wiki.roblox.com/index.php/CFrame_positioning

          game.Workspace.Brick.CFrame = CFrame.new(0, 10, 0)用于定位

          game.Workspace.Brick.CFrame = Workspace.Brick.CFrame * CFrame.fromEulerAnglesXYZ(0, 0, 0) 用于倾斜

          只需编辑 () 之间的值

          【讨论】:

            【解决方案6】:

            cframe 最简单的方法是通过 cframe 工具(在免费模型或目录上获取一个,注意有些可能会被感染),但存在一些问题,cframe 工具仅适用于锚定砖,并且它们不要告诉您是否要进入砖块内部,使用命令栏进行 cframe 将允许您进行 cframe,但不会让砖块进入其他砖块。我推荐 cframe 工具,因为你可以轻松使用它,并且构建模式的人更容易,而且高级玩家玩这样有趣的东西很有趣。加上cframe工具有更多的选择,你可以看到它的度数和位置,随意,不用打字,你可以进入其他砖块,很容易看出它是否重叠。只需取消选择,您就会看到。使用 CFRAMER 工具,而不是动画师!机制上存在巨大差异,事实上它会真正合作。我从来没有让动画师合作过。 :P

            【讨论】:

              【解决方案7】:

              只需在您的游戏中插入一个砖块。锚定它。然后转到免费模型。输入 cframe 或 cframe 工具。然后单击它然后抓住它。按下砖块,然后取决于您获得的 cframe 工具类型。 ;D

              【讨论】:

                【解决方案8】:

                我找到了一种非常简单的 CFrame 积木方法。打开 ROBLOX studio,前往查看 > 输出和查看 > 工具栏 > 命令。现在,在 Workspace 中选择您希望 CFrame 的砖块。在命令栏中,放置以下脚本:

                v = Game.Selection:Get()[1] v.CFrame = v.CFrame + Vector3.new(0, 0, 0)

                然后输入。将最后三个数字 (0, 0, 0) 更改为您希望砖块移动的螺柱。第一个数字是左右,第二个是上下,第三个是近远(深度)。

                由于多种原因,这就是我 CFrame 的方式:

                • 很快
                • 如果您将变量设为非常小的小数,则可以非常精确地放置砖块。
                • 您不必经常在脚本中重新输入积木的名称,只需选择要 CFrame 的积木。

                                                                                 ~Davillion
                  

                【讨论】:

                  【解决方案9】:

                  这是我制作的C-Frame工具包: http://www.roblox.com/Bubbas-C-frame-Tool-Pack-item?id=41704811 这些工具是不言自明的。

                  【讨论】:

                    【解决方案10】:

                    Workspace.Brick.CFrame = CFrame.new(0, 0, 0) -- 基本上更改名为“Brick”的工作区中零件的位置。为此使用 CFrmae 很好,因为有了它,您可以遍历对象。

                    Workspace.Brick.CFrame = Workspace.Brick.CFrame * CFrame.Angles(0, 0, 0) --使用新方法:3,这将工作区中名为“Brick”的零件在其轴上旋转x弧度x = 你的金额 你应该这样做

                    【讨论】:

                      【解决方案11】:

                      嗯,这是最简单的方法之一,除了使用工具。您可以在 Roblox Studio 中打开命令栏,甚至可以在构建中打开。然后输入这个

                      x = Game.Selection:Get()[1] x.CFrame = x.CFrame + Vector3.new(0, 0, 0)
                      

                      (0, 0, 0)改成你想要的位置

                      例子:

                      (1, 2, 3)
                      

                      希望我能帮上忙,

                      ~TheBinkyp

                      【讨论】:

                        【解决方案12】:

                        酷是错的。

                        Workspace.Brick.CFrame = CFrame.new(0, 0, 0) -- 基本上更改名为Brick 的工作区中零件的位置。使用CFrmae 很好,因为有了它,您可以遍历对象。

                        Workspace.Brick.CFrame = Workspace.Brick.CFrame * CFrame.Angles(0, 0, 0) -- 使用新的方式:3,这将工作区中名为Brick 的零件在其轴上旋转x Radians *x = your amount

                        【讨论】:

                          【解决方案13】:

                          您可以通过代码设置积木的 CFrame。您可以将积木的 CFrame 设置为等于 CFrame 对象。有关“CFrame”的信息可以在这里找到:“https://wiki.roblox.com/index.php?title=CFrame” 请注意,'CFrame.new()' 将具有 (0, 0, 0) 的坐标和旋转。

                          local cFrameObject = CFrame.new()
                          brick.CFrame = cFrameObject
                          

                          另一种影响积木 CFrame 的方法是使用 ROBLOX Studio 插件或在游戏中使用 CFrame 工具。

                          【讨论】:

                            【解决方案14】:

                            坐标框(CFrame)是一种表示位置的方式,要使用它需要使用Vector3或其他CFrame,您可以通过多种方式更改Frame: 1:获取另一个 CFrame 您可以获取一个零件的 CFrame 并将其用作参考,如果您想添加一些数学运算以将其更改为您想要的那个

                            reference = workspace.InsertYourPartHere
                            part = Instance.new("Part",workspace)
                            part.CFrame = reference.CFrame + Vector3.new(0,(reference.Size.Y / 2),0)
                            

                            2: 制作一个新的 CFrame 使用 Vector3 和 CFrame 可以改变零件的位置

                            part = Instance.new("TrussPart",workspace)
                            part.CFrame = CFrame.new(Vector3.new(math.random(0,2487),math.random(0,8),math.random(0,2487)))
                            

                            这就是 CFrame 的基础......还有更多的 CFrame 函数,比如 CFrame.Angles 可以解释自己

                            【讨论】:

                              猜你喜欢
                              • 2018-01-16
                              • 2012-05-26
                              • 1970-01-01
                              • 2014-01-23
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              相关资源
                              最近更新 更多