[最近,我正在工作室中试用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中不起作用。我已经检查了所有可能的网站,但无济于事。任何建议都是惊人的。
您没有正确使用repeat until
。第一行应为repeat
,最后一行应为until loopingvar == 100
。根本不应该有end
。当前,由于额外的end
,在您的代码中存在语法错误,即使没有此错误,您也会遇到无限循环,因为它基本上是repeat --[[do nothing]] until loopingvar == 100
。
但是,通过使用数字for
循环,您甚至可以做得比这更好。代替上述更改,删除local loopingvar = 0
和loopingvar = loopingvar + 1
,然后将repeat until loopingvar == 100
替换为for loopingvar = 0,100 do
。