Lua错误制作16x16网格

时间:2016-07-27 16:37:58

标签: lua

以下代码给出了以下错误:

  

尝试索引零值

    -- Making grid
grid = {}
local i = 1
local ii = 1
mainx, mainy = love.graphics.getDimensions()
while(i<=mainx) do
    if(i%16==0) then
        while(ii<=mainy) do
            if(ii%16==0) then
                grid[i][ii] = nil
            end
            ii = ii + 1
        end
    end
    i = i+1
end

我知道lua是1-based,但我真的不知道这里出了什么问题。

很高兴能解决问题:)

注意:mainx,mainy应为800和600。

1 个答案:

答案 0 :(得分:3)

在执行grid[i]之前,您忘了将{}分配给grid[i][ii] = nil。第二次解除引用[ii]失败,因为grid[i] == nil

我稍微重构了你的代码。

-- Making grid
local grid = {}
local mainx, mainy = love.graphics.getDimensions()
for i = 16,mainx,16 do  -- syntax: for i = <start_value>, <max value (included)> [, <step>]
    grid[i] = {};
    for ii = 16,mainy,16 do
        grid[i][ii] = i*ii  -- some value
    end
end