脚本不起作用,声音不播放,并且砖块不改变颜色

时间:2019-07-25 12:36:56

标签: lua roblox

我正在与Studio上的朋友一起制作恐怖游戏,突然间,我解决了这个问题。我要这样做,以使窗户的颜色变为白色,播放灯光的声音,然后恢复正常,等待15/20秒并循环播放。

我已经将声音放到脚本的子级中了,但是它不起作用。我已经尝试了很久了。

        script.Parent.BrickColor=("Institutional White")
        script.Sound:Play()
        wait(0.2)
        script.Parent.BrickColor = Dark stone grey
        wait(10)
        loop
    end

预期为“ =”,“为”结束“

1 个答案:

答案 0 :(得分:1)

我假设您正在为此使用Roblox Studio。

您走在正确的轨道上,但是只有一些语法错误需要修复。将BrickColor设置为零件时,必须创建一个新的BrickColor对象。您可以使用.new()函数执行此操作。

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

接下来,我们需要修复您的while循环。现在,您已经声明了end一词,但是您也需要while语句!我假设您希望循环无限运行。在这种情况下,您可以执行以下操作:

while (true) do
    --Write your code here
end

您还需要担心的另一件事是您的资产加载。简而言之,资产只是游戏中的对象,例如声音,图片,零件或其他任何东西。有时,当您启动游戏时,代码的运行速度将比资产加载的速度快。在这种情况下,我们需要编写代码,等待使用:WaitForChild()函数加载资产。

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

此外,Roblox Studio中还有其他声音。声音的来源或从何处播放取决于声音的父元素。例如,如果我将声音放入myPart内,则声音将从砖块本身开始播放,并且当您离开时声音会变得更安静。如果您将声音放在Workspacescript之类的服务或非物理对象中,则声音将在全球范围内播放,并且每个人都将听到相同音量的声音。

因此,最后,代码应该是这样的:

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

希望这会有所帮助!