在Lua中寻址数组中的索引

时间:2014-01-19 23:34:08

标签: arrays lua love2d addressing

我正在尝试使用 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:尝试索引零值

第48行引用这行代码:

objects.asteroids[i].size = 2 

1 个答案:

答案 0 :(得分:2)

你在每次循环迭代时都覆盖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] = {} -- ... 表之后一个人无法进入。

你可能想要重新排列它:

{{1}}