Lua和Love2D,表中的表错误

时间:2016-08-04 00:34:42

标签: lua love2d

为什么这不起作用?我正在尝试将所有对象表放在一个表中,并使用forloop迭代它们中的每一个并绘制。它显示一条错误消息:“}”预计在第5行“=”附近

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文件。但是,它仍然没有在屏幕上绘制任何内容

2 个答案:

答案 0 :(得分:1)

两件事。 首先,您必须使用对而不是ipairs来列出非数字的键。

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

您还必须将变量索引为字符串。

t = {
    x = 1
}

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

这是因为没有引号的做法将使用全局变量x进行索引,而该变量不存在。

答案 1 :(得分:0)

您需要使用pairs代替ipairs来迭代solidstatic中的元素,因为该表中没有数组键。