【问题标题】:Drawing an image loaded from other files (love2d)绘制从其他文件加载的图像 (love2d)
【发布时间】:2019-11-21 11:36:09
【问题描述】:

所以我的游戏文件夹中有一个“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'

【问题讨论】:

  • 关于 title(lv10) 的问题 - 它是否在另一个函数中,您是从 main.lua 调用它吗?
  • 是的,它在一个单独的函数中。要我分享整个游戏文件夹吗?
  • @TudoSzabo 希望我的回答有帮助;如果我误解了什么,请分享相关代码,以便我可以尝试找到更具体的答案!
  • 我已回滚您的编辑。在问题标题中添加 SOLVED 是不合适的。如果您在此处收到的答案提供了解决方案,您可以通过选中该答案旁边的标记来标记问题已解决以接受它。如果您自己找到了解决方案并想分享它,请在下面的空白处写下答案;请参阅Can I answer my own question? 了解更多信息。

标签: graphics love2d


【解决方案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(每一帧)。

【讨论】:

  • @TudorSzabo 如果这可行,请检查答案框!谢谢:D
猜你喜欢
  • 1970-01-01
  • 2014-01-29
  • 1970-01-01
  • 2017-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-02
相关资源
最近更新 更多