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の数に関係なく

何らかの理由で2番目の配列が機能しません。2番目の配列は次のとおりです

 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)

2番目の配列にインデックスを付けることができない理由がわかりません

これは私がコンソールで得る次のエラーです

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

助けてくれてありがとう。

基本的に、2D配列に格納されたバブルのグリッドを次のパターンで表示したい

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 に答える