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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了'尝试索引字段'颜色'(零值)'在LUA中访问数组时相关的知识,希望对你有一定的参考价值。

所以我决定尝试为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 = {'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

它会每秒打印一种颜色。

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

答案

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

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

script.Parent.BrickColor = Colors[math.random(1,7)]
另一答案

好吧,在尝试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

以上是关于'尝试索引字段'颜色'(零值)'在LUA中访问数组时的主要内容,如果未能解决你的问题,请参考以下文章

MySQL索引使用:字段为varchar类型时,条件要使用''包起来

oracle建立索引

《零基础》MySQL 正则表达式(二十一)

《零基础》MySQL 正则表达式(二十一)

mysql like 不走索引怎么办

用mysql查询某字段是不是有索引怎么做?