错误main.lua:98:尝试索引本地“e”(数值)

错误main.lua:98:尝试索引本地“e”(数值),lua,love2d,Lua,Love2d,我不断收到这个错误,说我试图将本地“e”索引为一个数值,我不知道我做错了什么。我试着做一个游戏,在这个游戏中你必须射杀向地面飞来的外星人,而且不能让他们触地。我是Lua和Love2d的新手,所以如果这是一个简单的解决方法,我很抱歉 代码: 首先 敌人的复数形式是敌人,而不是敌人 敌人 此表包含一系列敌人以及冷却值,冷却值是一个数字 对 此函数迭代表的所有键值对 问题 你现在可能已经猜到了。pairsstorage.friends不仅在整数键上迭代所有敌人,而且在字符串键“cooldown”上迭代

我不断收到这个错误,说我试图将本地“e”索引为一个数值,我不知道我做错了什么。我试着做一个游戏,在这个游戏中你必须射杀向地面飞来的外星人,而且不能让他们触地。我是Lua和Love2d的新手,所以如果这是一个简单的解决方法,我很抱歉

代码:

首先 敌人的复数形式是敌人,而不是敌人

敌人 此表包含一系列敌人以及冷却值,冷却值是一个数字

对 此函数迭代表的所有键值对

问题 你现在可能已经猜到了。pairsstorage.friends不仅在整数键上迭代所有敌人,而且在字符串键“cooldown”上迭代冷却时间,导致您尝试索引一个数字

例子: 将打印类似于

1    a
foo  bar
3    c
2    b
注意,顺序是完全随机的,取决于Lua决定如何在内部存储表

for key, value in ipairs({'a', 'b', 'c', foo='bar'}) do
  print(key, value)
end
但应打印:

1    a
2    b
3    c

因为IPAIR(与pairs相反)只按顺序迭代整数键,直到它达到第一个nil值。例如,对于{1,2,3,nil,5},它只会在1,2和3上迭代。

您没有告诉我们哪一行是第98行。
for key, value in ipairs({'a', 'b', 'c', foo='bar'}) do
  print(key, value)
end
1    a
2    b
3    c