【问题标题】:Lua and Love2D, table in table errorLua 和 Love2D,表中的表错误
【发布时间】:2016-12-09 21:24:27
【问题描述】:

为什么这不起作用?我试图将我所有的对象表放在一个表中,并使用 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 

(edit) 解决了错误问题,我运行了错误的 .lua 文件。但是,它仍然没有在屏幕上绘制任何东西

【问题讨论】:

  • solidstatic 表没有数组键,因此ipairs 不会迭代任何内容。

标签: lua love2d


【解决方案1】:

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

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

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

t = {
    x = 1
}

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

这是因为不加引号会使用不存在的全局变量 x 进行索引。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2021-12-21
      • 2017-04-08
      • 2014-06-10
      • 2021-12-27
      • 1970-01-01
      • 2015-04-28
      • 2016-04-21
      • 2021-12-13
      • 1970-01-01
      相关资源
      最近更新 更多