首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >roblox lua脚本未激活

问roblox lua脚本未激活
EN

Stack Overflow用户
提问于 2015-12-25 00:59:20
回答 2查看 449关注 0票数 0

所以我有这个密码

代码语言:javascript
复制
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)

我想做的是做一个短跑切换程序。唯一的问题是,它将工作一次,然后根本不起作用。我可以点击它,它改变文本,然后当我再次点击它,它什么也不做。我希望你每次按它的时候都能工作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-25 05:30:39

在函数中测试2个if语句。如果短跑是假的,如果它是真的。

理解你的问题的关键是你的if语句相互抵消。

让我们来看看这个,首先它会检测它是否是假的。不,短跑不是假的。如果检查是否属实。它是!所以它把它设为假的。

到目前为止还不错,对吧?这是你的问题。当你再试一次时,短跑是错误的。因此运行第一个if语句,并将其设置为true。然后,紧接着运行另一个if语句。因为它现在是真的,这会运行,将其设置为false。似乎什么都没发生。

你的解决方案?取出第一个if语句的结尾,将第二个if替换为另一个if。这样,一旦一个语句求值为true,它就不会计算下一个语句。

票数 1
EN

Stack Overflow用户

发布于 2015-12-26 20:25:49

你的逻辑不对。正如战争贩子所说,你的条件有问题。通过添加一个elseif语句来解决这个问题。

代码语言:javascript
复制
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
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34459195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档