Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
搜索结果lua-尝试索引全局';自我';(零值)_Lua_Love2d - Fatal编程技术网

搜索结果lua-尝试索引全局';自我';(零值)

搜索结果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()),因为在这

我运行这段代码是希望让我的敌人每5秒不断繁殖一次,但我只是不断得到“尝试索引全局‘自我’(一个零值)。”这是在我的游戏文件中,表格来自我的敌人文件。感谢您的帮助

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,所以不要期望太多,但是您尝试过
    表格:插入(自我:敌人,敌人)
    ?如果
    敌人
    是全局变量,那么请尝试
    表格。插入(敌人,敌人)
    谢谢,你有什么解决方案或其他方法让我的敌人不断繁殖吗?谢谢,你有什么解决方案或其他方法让我的敌人不断繁殖吗?