Рисование изображения, загруженного из других файлов (love2d) - PullRequest
1 голос
/ 11 июля 2019

Итак, у меня есть файл «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'

1 Ответ

1 голос
/ 12 июля 2019

Я не знаю особенностей вашего кода, но у меня сработало следующее:

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() вызывается ровно один раз, при запуске программы .

В main.lua Я определяю функцию title(), затем переопределяю love.draw() для вызова title().По умолчанию love.draw() называется каждый цикл обновления движка любви (каждый кадр).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...