我正在尝试使用 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
答案 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}}