在Lua中访问数组中的索引。

我正在尝试使用Love 2d引擎编写一个简单的游戏。它使用lua作为脚本语言。我在数组方面有一些问题,找不到任何解决方法。以下是我的问题:

for i = 1, 10 do
    objects.asteroids = {}
    objects.asteroids[i] = {}
    objects.asteroids[i].body = love.physics.newBody(world, 650/2, 650/2, "dynamic")
    objects.asteroids[i].size = 3
    objects.asteroids[i].angle = math.random(6)
end

在同一个函数中,我试图执行以下操作:

for i = 1, 10 do
    objects.asteroids[i].size = 2
end

当我尝试运行我的游戏时,会出现以下错误:

错误 main.lua:48: attempt to index a nil value

其中第48行指的是以下代码行:

objects.asteroids[i].size = 2
点赞
用户828255
用户828255

你在每个循环迭代中都在覆盖 objects.asteroids

for i = 1, 10 do
  objects.asteroids = {} -- <== Here.
  objects.asteroids[i] = {}

这意味着你试图添加的小行星对象会在下一个循环步骤中被擦除,因为 object.asteroids 被设置为一个新的 {} 表,旧的表在此后变得不可访问。

你可能想按如下方式重新排列:

objects.asteroids = {}

for i = 1, 10 do
  objects.asteroids[i] = {}
  -- ...
2014-01-19 23:38:57