脚本无法运行,声音无法播放,砖块颜色不改变

我和我的朋友在Studio中制作恐怖游戏时,突然遇到了这个问题。我想让窗户变成白色,播放闪电声音,然后回到正常状态,等待15/20秒,然后循环。

我已经将声音放在脚本的子项中,但它无效。我已经尝试了很长时间。

        script.Parent.BrickColor=("机构白色")
        script.Sound:Play()
        wait(0.2)
        script.Parent.BrickColor = 暗石灰色
        wait(10)
        loop
    end

预期的“=”,得到了“end”

点赞
用户11837910
用户11837910

我假设您正在使用Roblox Studio。

您走在正确的道路上,但有一些语法错误需要修正。当将BrickColor设置为部件时,您必须创建一个新的BrickColor对象。您可以使用“ .new()”函数来完成这项工作。

script.Parent.BrickColor = BrickColor.new("Institutional White")

接下来,我们需要修复while循环。现在,您已经声明了“ end”关键字,但您也需要while语句!我假设您希望循环无限制地运行。在这种情况下,您可以这样做:

while (true) do
    --在这里编写您的代码
end

另一件需要注意的事情是您的资源加载。简而言之,资源就是游戏中的对象,比如声音、图片、一个零件,实际上可以是任何东西。有时,当您启动游戏时,您的代码会比资源加载快。在这种情况下,我们需要编写代码,使用“:WaitForChild()”函数等待资源加载。

local part = script.Parent:WaitForChild("MyPart")
local sound = script.Parent:WaitForChild("MySound")

此外,在Roblox Studio中使用声音的另一件事情。声音的来源或播放位置取决于声音的父元素是什么。例如,如果我将声音放在“ myPart”中,声音将从砖块本身播放,并且随着您走开声音会变得越来越轻。如果您将声音放入服务或非物理对象中,例如“ Workspace”或“ script”,那么声音将在全局播放,并且每个人听到声音的音量都相同。

因此,最终,您的代码应如下所示:

local part = script.Parent
local sound = script:WaitForChild("Sound")

while (true) do
    part.BrickColor = BrickColor.new("Institutional White")
    sound:Play()
    wait(0.2)
    part.BrickColor = BrickColor.new("Medium stone grey")
    wait(10)
end

希望这有所帮助!

2019-07-25 20:24:50