У меня есть файл display.lua, в котором есть код для загрузки некоторых ресурсов.
----display.lua
Resources = {}
function Resources:new(rootdir)
local newObj = {image = {}, audio = {}, root = ""}
newObj.root = rootdir
return setmetatable(newObj, self)
end
function Resources:getSpriteSheet(name)
--- etc etc etc
end
а затем у меня есть игровая переменная, которую я использую для хранения состояния игры, она находится в другом файле game.lua.
---game.lua
require "display.lua"
function Game:new()
local newObj = {mode = "", map = {}, player = {}, resources = {}}
self.__index = self
return setmetatable(newObj, self)
end
function Game:init()
self.resources = Resources:new("/home/example/etc/game/")
local spriteSheet = self.resources:getSpriteSheet("spritesheet.png")
end
У меня есть доступ к коду ресурсов с помощью require
. Моя проблема в том, что в Game:init()
я не могу получить доступ к Resources:getSpriteSheet()
, интерпретатор lua жалуется на «попытку вызвать метод (getSpriteSheet) с нулевым значением»
Я предполагаю, что здесь мне придется экспортировать методы в Resources, но я не знаю, как это сделать, так как я новичок в Lua.