Graphics 绘制从其他文件加载的图像(love2d)

Graphics 绘制从其他文件加载的图像(love2d),graphics,love2d,Graphics,Love2d,因此,我在游戏文件夹中有一个“load_assets.lua”文件和“main.lua”。在“load_assets.lua”文件中,我有一个“love.graphics.newImage(image)” 在“main.lua”文件中,我有“love.graphics.draw(image)” 我尝试在“main.lua”文件中创建此函数: “load_assets.lua”文件中的此函数: 但它似乎仍然不起作用 当然,代码比这复杂一点,但类似: --in "main.lua" the func

因此,我在游戏文件夹中有一个“load_assets.lua”文件和“main.lua”。在“load_assets.lua”文件中,我有一个“love.graphics.newImage(image)” 在“main.lua”文件中,我有“love.graphics.draw(image)”

我尝试在“main.lua”文件中创建此函数:

“load_assets.lua”文件中的此函数:

但它似乎仍然不起作用

当然,代码比这复杂一点,但类似:

--in "main.lua" the function is actually:

function title(lvl0)
    love.graphics.draw(lvl0)
end

--and in "load_assets" it's:

function love.load()
    lvl0 = love.graphics.newImage("lvl0.png")
end

title(lvl0)
运行代码时,出现以下错误:

Error

title.lua:3: bad argument #1 to 'draw' (Drawable expected, got nil)


Traceback

[C]: in function 'draw'
title.lua:3: in function 'title'
main.lua:16: in main chunk
[C]: in function 'require'
[C]: in function 'xpcall'
[C]: in function 'xpcall'

我不知道您的代码的细节,但以下内容对我很有用:

加载资产。lua

main.lua

Love2d
有几个内置函数,您可以重写这些函数来创建程序。理想情况下,所有函数调用都发生在这些程序中

因此,在load\u assets.lua中,我覆盖
love.load()
函数来创建
lv10
。默认情况下,调用
love.load()


main.lua中,我定义
title()
函数,然后重写
love.draw()
以调用
title()
。默认情况下,(每帧)调用
love.draw()

关于
title(lv10)
的问题-它是否在另一个函数中,您是否从
main.lua
调用它?是的,它在单独的函数中。想让我分享整个游戏文件夹吗?@TudoSzabo希望我的答案有帮助;如果我误解了什么,请分享相关代码,以便我可以尝试找到更具体的答案!我已回滚您的编辑。在问题标题中添加“已解决”是不合适的。如果您在此处收到的答案提供了解决方案,您可以通过选中该答案旁边的标记以接受该答案来标记已解决的问题。如果您自己找到了解决方案并想与他人分享,请在下方空白处写下答案;有关详细信息,请参阅。@TudorSzabo如果这有效,请选中“答案”框!谢谢:D
--in "main.lua" the function is actually:

function title(lvl0)
    love.graphics.draw(lvl0)
end

--and in "load_assets" it's:

function love.load()
    lvl0 = love.graphics.newImage("lvl0.png")
end

title(lvl0)
Error

title.lua:3: bad argument #1 to 'draw' (Drawable expected, got nil)


Traceback

[C]: in function 'draw'
title.lua:3: in function 'title'
main.lua:16: in main chunk
[C]: in function 'require'
[C]: in function 'xpcall'
[C]: in function 'xpcall'
function love.load()
    lv10 = love.graphics.newImage("image.png")
end
require("load_assets")

function title(lv10)
    love.graphics.draw(lv10)
end

function love.draw()
    title(lv10)
end