2016-08-04 6 views
1

Почему это не работает? Я пытаюсь поместить все мои таблицы объектов в одну таблицу и использовать forloop для повторения каждой из них и рисования. Он выдает сообщение об ошибке, говорящее: «}» ожидается около «=» в строке 5Lua and Love2D, таблица в таблице ошибка

function love.load() 
solidstatic = { 
ground = {x = 0,y = 160,width = 1000,height = 1000}, 
box = {x = 80,y = 100,width = 15,height = 15} 
} 

end 


function love.draw() 
for i,obj in ipairs(solidstatic) do 
love.graphics.rectangle("fill",obj[x],obj[y],obj[width],obj[height]) 
end 
end 

(редактировать) решить проблему ошибок, я бегу неправильный файл .lua. Но все же ничего не нарисовано на экране.

+0

В таблице «solidstatic» нет ключей массива, поэтому 'ipairs' не перебирает ничего. –

ответ

0

Вам нужно использовать pairs вместо ipairs, чтобы перебирать элементы в solidstatic, так как в этой таблице нет ключей массива.

1

Две вещи. Во-первых, вы должны использовать пары вместо ipairs для указания ключей, которые не являются номерами.

for i, v in pairs(table) do 
    ... 
end 

Вы также должны индексировать переменные в виде строки.

t = { 
    x = 1 
} 

t['x'] = 1 
-- or 
t.x = 1 

Это потому, что выполнение этого без кавычек будет индексировать с глобальной переменной x, которая не существует.

 Смежные вопросы

  • Нет связанных вопросов^_^