搜索结果lua-尝试索引全局';自我';(零值)
我运行这段代码是希望让我的敌人每5秒不断繁殖一次,但我只是不断得到“尝试索引全局‘自我’(一个零值)。”这是在我的游戏文件中,表格来自我的敌人文件。感谢您的帮助搜索结果lua-尝试索引全局';自我';(零值),lua,love2d,Lua,Love2d,我运行这段代码是希望让我的敌人每5秒不断繁殖一次,但我只是不断得到“尝试索引全局‘自我’(一个零值)。”这是在我的游戏文件中,表格来自我的敌人文件。感谢您的帮助 timer = timer + dt if timer >= 5 then table.insert(self.enemies, enemy) timer = timer - 5 end self在函数内部有效,其中self是一个明确指定的参数,或者函数是使用冒号运算符定义的(如function foo:bar()),因为在这
timer = timer + dt
if timer >= 5 then
table.insert(self.enemies, enemy)
timer = timer - 5
end
self
在函数内部有效,其中self
是一个明确指定的参数,或者函数是使用冒号运算符定义的(如function foo:bar()
),因为在这种情况下它将作为隐藏参数提供
在您的情况下,这两种情况似乎都不满足,self
被视为未定义的全局变量
有关正确用法的详细信息和示例,请参见。
self
在函数中有效,其中self
是明确指定的参数,或者函数是使用冒号运算符定义的(如function foo:bar()
),因为在这种情况下它将作为隐藏参数提供
在您的情况下,这两种情况似乎都不满足,self
被视为未定义的全局变量
有关正确使用的详细信息和示例,请参阅。我可以看出有一些地方不正确。我将解释一种正确的方法,您可以将其与设置方法进行比较 在您的敌人文件中(我将假定其名为敌军.lua),应该有一个包含以下内容的表:
local enemies = { } -- table to export
enemies.list = { } -- list of entities
function enemies.new()
local new_entity = { }
new_entity.x = 0 -- set entity coordinates
new_entity.y = 0
-- set any another entity information, like sprites, health, etc.
return new_entity
end
return enemies -- make this table available to other files through require
然后,使用以下行将其导入main.lua:
local enemies = require "enemies"
这将使成为敌人。列出和敌人。在main.lua中提供新的。您的table.insert将变为
table.insert(enemies.list, enemies.new())
基本上,您的主要错误是试图在不使用require
的情况下访问另一个文件中的内容。希望这能有所帮助。我可以看出有些地方不对劲。我将解释一种正确的方法,您可以将其与设置方法进行比较
在您的敌人文件中(我将假定其名为敌军.lua),应该有一个包含以下内容的表:
一个包含敌人列表的表格(请确保在文件末尾返回!)
创建新敌人的功能
它可能看起来像这样:
local enemies = { } -- table to export
enemies.list = { } -- list of entities
function enemies.new()
local new_entity = { }
new_entity.x = 0 -- set entity coordinates
new_entity.y = 0
-- set any another entity information, like sprites, health, etc.
return new_entity
end
return enemies -- make this table available to other files through require
然后,使用以下行将其导入main.lua:
local enemies = require "enemies"
这将使成为敌人。列出和敌人。在main.lua中提供新的。您的table.insert将变为
table.insert(enemies.list, enemies.new())
基本上,您的主要错误是试图在不使用require
的情况下访问另一个文件中的内容。希望这有帮助。我不做Lua,所以不要期望太多,但您是否尝试过table:insert(self:敌军,敌军)
?如果敌人
是全局变量,那么请尝试表格。插入(敌人,敌人)
我不做Lua,所以不要期望太多,但是您尝试过表格:插入(自我:敌人,敌人)
?如果敌人
是全局变量,那么请尝试表格。插入(敌人,敌人)
谢谢,你有什么解决方案或其他方法让我的敌人不断繁殖吗?谢谢,你有什么解决方案或其他方法让我的敌人不断繁殖吗?