为什么这不起作用?我正在尝试将所有对象表放在一个表中,并使用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文件。但是,它仍然没有在屏幕上绘制任何内容
答案 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
中的元素,因为该表中没有数组键。