绘制从其他文件加载的图像(love2d)
Drawing an image loaded from other files (love2d)
所以我的游戏文件夹中有一个 "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'
我不知道你的代码的细节,但以下代码对我有用:
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(每一帧)。
所以我的游戏文件夹中有一个 "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'
我不知道你的代码的细节,但以下代码对我有用:
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(每一帧)。