所以我有这个密码
local player = game.Players.LocalPlayer
local unitFrame = script.Parent
local buttona = unitFrame.buttonA
local sprinting = true
unitFrame.Title.Text = "Perks"
local function onButtonAClick()
unitFrame.Title.Text = "perks"
end
local function sprintButton()
if sprinting == false then
sprinting = true
player.Character.Humanoid.WalkSpeed = 20
unitFrame.buttonA.Text = "strinting"
end
if sprinting == true then
sprinting = false
player.Character.Humanoid.WalkSpeed = 16
unitFrame.buttonA.Text = "walking"
end
end
buttona.MouseButton1Click:connect(sprintButton)我想做的是做一个短跑切换程序。唯一的问题是,它将工作一次,然后根本不起作用。我可以点击它,它改变文本,然后当我再次点击它,它什么也不做。我希望你每次按它的时候都能工作。
发布于 2015-12-25 05:30:39
在函数中测试2个if语句。如果短跑是假的,如果它是真的。
理解你的问题的关键是你的if语句相互抵消。
让我们来看看这个,首先它会检测它是否是假的。不,短跑不是假的。如果检查是否属实。它是!所以它把它设为假的。
到目前为止还不错,对吧?这是你的问题。当你再试一次时,短跑是错误的。因此运行第一个if语句,并将其设置为true。然后,紧接着运行另一个if语句。因为它现在是真的,这会运行,将其设置为false。似乎什么都没发生。
你的解决方案?取出第一个if语句的结尾,将第二个if替换为另一个if。这样,一旦一个语句求值为true,它就不会计算下一个语句。
发布于 2015-12-26 20:25:49
你的逻辑不对。正如战争贩子所说,你的条件有问题。通过添加一个elseif语句来解决这个问题。
local function sprintButton()
if not sprinting then
sprinting = true
player.Character.Humanoid.WalkSpeed = 20
unitFrame.buttonA.Text = "sprinting"
elseif sprinting then
sprinting = false
player.Character.Humanoid.WalkSpeed = 16
unitFrame.buttonA.Text = "walking"
end
endhttps://stackoverflow.com/questions/34459195
复制相似问题