【发布时间】:2015-01-08 00:32:46
【问题描述】:
我有一个文件 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) 为 nil 值”
我在这里假设我必须导出资源中的方法,但我不知道该怎么做,因为我对 Lua 还很陌生。
【问题讨论】: