因此,我的游戏文件夹中有一个“ load_assets.lua”文件以及“ main.lua”。在“ load_assets.lua”文件中,我有一个“ love.graphics.newImage(image)” 在“ main.lua”文件中,我有“ love.graphics.draw(image)”。
我尝试在“ main.lua”文件中创建此函数:
function love.draw(i)
love.graphics.draw(i)
end
以及“ load_assets.lua”文件中的此函数:
image = love.graphics.newImage(image)
lovedraw(image)
但它似乎仍然不起作用。
当然,代码要比这复杂一些,但类似:
--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'
答案 0 :(得分:1)
我不知道您代码的细节,但是以下代码对我有用:
load_assets.lua
function love.load()
lv10 = love.graphics.newImage("image.png")
end
main.lua
require("load_assets")
function title(lv10)
love.graphics.draw(lv10)
end
function love.draw()
title(lv10)
end
Love2d
有几个内置函数,您可以重写这些函数来创建程序。理想情况下,所有函数调用都在这些程序中进行。
因此,在 load_assets.lua 中,我重写了love.load()
函数以创建lv10
。默认情况下,love.load()
被称为exactly once, at the start of the program。
在 main.lua 中,我定义了title()
函数,然后重写love.draw()
来调用title()
。默认情况下,love.draw()
被称为every update cycle of the love engine(每帧)。