CFrame项目符号将不会触发

问题描述 投票:0回答:1

[最近,我正在工作室中试用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中不起作用。我已经检查了所有可能的网站,但无济于事。任何建议都是惊人的。

lua scripting roblox
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.