Love2d 在 for 循环中向表添加值.. 使用变量

这是一件让我感到烦恼已久的事情:

for i = 1, 4 do
   x = love.physics.newFixture(diffTable[i].body, diffTable[i].shape):setCategory(10)
   x = x:setUserData('Border') -- 这里出错了
   table.insert(data, x)
end

假设我想向表中插入一个变量(基本上是创建变量,然后修改它),然后插入它:

当我进行 x = x:setUserData(...) 时,会出现错误.. 说 尝试索引全局变量 x(值为 nil)

所以我的问题是,如何在 for 循环中创建变量,具体而言 我需要这样做是因为我正在使用 love.physics,并创建具有类别的 fixture。我还需要在此时 setUserData,但这是不可能的。

我相信一定有一种方法可以做到这一点... 提前感谢!!

点赞
用户7396148
用户7396148

函数Fixture:setCategory不返回值。

因此,当您执行以下操作时:

x = love.physics.newFixture(diffTable[i].body, diffTable[i].shape):setCategory(10)

您将设置x = nilFixture:setUserData也不返回值。

如果您将其更改为以下内容,则不会再次出现该错误。

for i = 1, 4 do
   x = love.physics.newFixture(diffTable[i].body, diffTable[i].shape)
   x:setCategory(10)
   x:setUserData('Border') -- 这里有错误

   table.insert(data, x)
end
2021-03-22 14:28:22