我正在与Studio上的朋友一起制作恐怖游戏,突然间,我解决了这个问题。我要这样做,以使窗户的颜色变为白色,播放灯光的声音,然后恢复正常,等待15/20秒并循环播放。
我已经将声音放到脚本的子级中了,但是它不起作用。我已经尝试了很久了。
script.Parent.BrickColor=("Institutional White")
script.Sound:Play()
wait(0.2)
script.Parent.BrickColor = Dark stone grey
wait(10)
loop
end
预期为“ =”,“为”结束“
答案 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
内,则声音将从砖块本身开始播放,并且当您离开时声音会变得更安静。如果您将声音放在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
希望这会有所帮助!