Lua 报错,制作16x16网格

下面的代码给了我以下错误:

尝试对空值索引

    -- 制作网格
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 开始计数的,但我不知道这里出了什么问题。

希望能得到解决方案 :)

注:mainx,mainy 应该是 800 和 600。

点赞
用户1836540
用户1836540

你在执行 grid[i][ii] = nil 前忘了将 grid[i] 赋值为 {}。第二次引用 [ii] 失败,因为 grid[i] == nil

我对你的代码进行了一些重构:

-- 制作网格
local grid = {}
local mainx, mainy = love.graphics.getDimensions()
for i = 16,mainx,16 do  -- 语法:for i = <起始值>, <最大值(包括)>[, <步长>]
    grid[i] = {};
    for ii = 16,mainy,16 do
        grid[i][ii] = i*ii  -- 某个值
    end
end
2016-07-27 19:00:26