Попытка индексировать поле?(нулевое значение) - PullRequest
1 голос
/ 05 марта 2011

Я пишу небольшой игровой движок RPG с Lua / love2d, и мне нужно проанализировать файл в 2d массив, но он не работает, и я получаю ошибки ...

main.lua:

local fmap = love.filesystem.read("map.txt")
map = {}
for c in fmap:gmatch(".") do
    if c == "\n" then
        y = 0
        x = x + 1
    else
        map[x][y] = c -- this won't work
        y = y + 1
    end
end

map.txt:

6777633333
6558633333
6555614133
7757711112
2111111112
2111111112
2222222222

Ответы [ 2 ]

1 голос
/ 05 марта 2011

Вы не можете использовать многомерный массив, подобный этому.См. Матрицы и многомерные массивы

. Вы можете преобразовать свой код следующим образом:

local fmap = love.filesystem.read("map.txt")
map = {}
x = 0
y = 0
map[x] = {}
for c in fmap:gmatch(".") do
    if c == "\n" then
        y = 0
        x = x + 1
        map[x] = {}
    else
        map[x][y] = c -- this won't work
        y = y + 1
    end
end
0 голосов
/ 08 марта 2011

Я знаю, что на этот вопрос уже был дан ответ, но вы, вероятно, найдете мое (в процессе) руководство по плитке полезным. секция строк имеет дело именно с вашей проблемой.

...