首页 > 解决方案 > CFrame 子弹不会发射

问题描述

最近,我一直在工作室里试验 Roblox 版本的 Lua。我试图将移动的弹丸连接到 GUI 按钮。这是代码:

local cannonp1 = workspace.CannonP1
local loopingvar = 0

script.Parent.MouseButton1Click:Connect(fire)

function fire()
    repeat until loopingvar == 100
        workspace.ProjectileP1.CFrame = workspace.ProjectileP1.CFrame * CFrame.new(1, 0, 0)
        loopingvar = loopingvar + 1
        wait(0.1)
    end
end

我对 Roblox Studio 很陌生,所以我只能说当我按下按钮时,我的弹丸不会发生任何事情。如果您想知道,弹丸已锚定。我知道好的问题应该详细说明,但是除了我极其糟糕的脚本之外,我找不到其他会影响弹丸运动的信息。我还查看了 Roblox 开发者论坛,但大多数关于 CFrame 的帖子都已过时,并且在新版本的 Roblox Studio 中不起作用。我已经检查了所有可能的网站,但无济于事。任何建议都会很棒。

标签: luascriptingroblox

解决方案


你没有repeat until正确使用。第一行应该是repeat,最后一行应该是until loopingvar == 100。根本不应该有end。目前,由于 extra end,您的代码中存在语法错误,即使没有,您也会有一个无限循环,因为它基本上是repeat --[[do nothing]] until loopingvar == 100.

for但是,通过使用数字循环,您甚至可以做得比这更好。代替上述更改,去掉local loopingvar = 0and loopingvar = loopingvar + 1,并替换repeat until loopingvar == 100for loopingvar = 0,100 do


推荐阅读