arrays - 在Lua中寻址数组中的索引

标签 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 

尝试运行游戏时出现此错误:

Error main.lua:48: attempt to index a nil value

其中第 48 行引用了这行代码:

objects.asteroids[i].size = 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] = {}
  -- ...

关于arrays - 在Lua中寻址数组中的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21224098/

相关文章:

c++ - 索引全局 "self"时出错?

python - numpy.array() 等同于 numpy.stack(..., axis=0) 吗?

Javascript 数组多维推送?

PHP MySQL : GET new way to query SQL

c - C语言中的数组

lua - 如何使用 LPeg 正确地进行前瞻

c - Lua中为什么使用索引方法而不是特殊方法

lua - 如何在 Lua 中重命名(或移动)变量?

user-interface - 错误 main.lua :23: attempt to index upvalue 'Menu' (a boolean value)

lua - Love2d 和径向重力