0

我在 lua 中设置了 2 个不同的 2d 数组。第一个循环

bubbleMat = {}                              --Set Up Table called bubbleMat
for i = 1, 10 do
    bubbleMat[i] = {}                           --1D table with 10 components

    for j = 1, 13 do
        bubbleMat[i][j] = bubbleClass.new( (i*62) - 62, (j*62) - 62 )   --2D Table with 10x13 Matrix each cell given a coordinate as it is iterated through the loop
    end
end

有了这个数组,我可以将数组中任何位置的值打印到控制台

print(bubbleMat[x][y]) 

对于任意数量的 x 和 y

由于某种原因,第二个数组不起作用。第二个数组如下

 bubbleMat = {}                             --Set Up Table called     bubbleMat
for j = 1, 13 do
    for i = 1, 10 do
        bubbleMat[i] = {}
        --bubbleMat[i][j] = {}
            if j%2 == 0 then
                bubbleMat[i][j] = bubbleClass.new( (i*62) - 31, (j*62) - 62 )
            else
                bubbleMat[i][j] = bubbleClass.new( (i*62) - 62, (j*62) - 62 )
            end
    end
end

print(bubbleMat)

我不确定为什么我不能索引第二个数组

这是我在控制台中遇到的以下错误

 attempt to index field '?' (a nil value)

提前感谢您的帮助。

基本上我想以以下模式显示存储在二维数组中的气泡网格

0   0    0    0    0    0    0    0    0    0
  0    0    0    0    0    0    0    0    0

而不是让下一行中的气泡直接位于下方

4

1 回答 1

0

循环for j在外面,循环for i在里面。这不一定是错误的,但不寻常。

但是,在最里面的循环中bubbleMat[i]被初始化{},这显然是错误的。

要么将该初始化移动到最外层循环,要么使用以下语法:

bubbleMat[i] = bubbleMat[i] or {}
于 2012-09-09T17:30:03.957 回答