3D 配列またはテーブルのサイズを動的に変更することを目的とした関数がありますが、範囲外であるため値 nil を返すと言って中断し続けます。そのコードは次のとおりです。
function resize()
temp = { }
for h=1, height do
table.insert( temp , { } )
for y=1, length do
table.insert ( temp[h], { } )
for x=1, width do
num = 16
if #blocks <= height then
if #blocks[h] <= length then
if #blocks[h][y] <= width then
num = blocks[h][y][x]
end
end
end
table.insert( temp[h][y] , num )
end
end
end
blocks = temp
end
あまりコメントされていないことは知っていますが、ディメンションが変更された新しいテーブルを作成し、ブロックのデータを新しいテーブルに重ね合わせ、最後にブロックを新しい一時テーブルで上書きするという考えです。
長さ、幅、高さは、1 ずつ増加または減少しますが、一度に 1 つだけ変更されます。
十分に明確に説明したかどうかわかりませんが、そうでない場合はお知らせください。詳しく説明します。
ありがとう、ジェームズ