'尝试索引字段'颜色' (零值)'在LUA中访问数组时

时间:2017-12-29 00:52:23

标签: arrays lua null roblox

所以我决定尝试为roblox挑选LUA,因为forums.roblox.com已经死了,如果有更好的地方可以请你告诉我。

无论如何,我试图让一个块在几种预定义的颜色之间随机变换。我试图这样做的方法是使用颜色制作一个数组,然后使用math.random在数组中选择一个位置作为颜色,所有这些都在1 = 1循环中,每1秒重复一次。

这是我的代码

Colors = {'Red', 'Orange', 'Yellow', 'Camo', 'Blue', 'Pink', 'Purple'}

while(1 == 1)
do
    script.Parent.BrickColor = BrickColor.Colors[math.random(1,7)]
    wait(1)
end

每当我运行它时,我都会收到错误" Workspace.Part.Script:5:尝试索引字段' Colors' (零值)"

但如果我尝试

Colors = {'Red', 'Orange', 'Yellow', 'Camo', 'Blue', 'Pink', 'Purple'}

while(1 == 1)
do
    --script.Parent.BrickColor = BrickColor.Colors[math.random(1,7)]
    Colors[math.random(1,7)]
    wait(1)
end

它会每秒打印一种颜色。

就像我说我刚开始所以它可能是愚蠢的。

2 个答案:

答案 0 :(得分:0)

  

script.Parent.BrickColor = BrickColor.Colors [math.random(1,7)]

您在Colors中引用了字段BrickColor,而您应该只引用之前创建的变量Colors

script.Parent.BrickColor = Colors[math.random(1,7)]

答案 1 :(得分:0)

好的,所以在尝试Pauls建议将砖色线更改为

之后
script.Parent.BrickColor = Colors[math.random(1,7)]

我收到了错误

bad argument #3 to 'BrickColor' (BrickColor expected, got string)
经过一些搜索,我发现我需要使用BrickColor.new(颜色)来改变颜色。这就是代码在最后看到的方式

Colors = {'Red', 'Orange', 'Yellow', 'Camo', 'Blue', 'Pink', 'Purple'}

while(1 == 1)
do
    script.Parent.BrickColor = BrickColor.new(Colors[math.random(1,7)])
    wait(1)
end