为什么在Lua(cocos2d-x)中需要返回布尔值?

我打印了require("Square"),但它返回了true,并且我得到了一个attempt to index local 'r'错误,为什么它没有返回一个cc.Scene?如何处理这个问题?

Square.lua

require "Cocos2d"
require "Cocos2dConstants"

local Square = class("Square", function()
    return cc.Scene:create()
end)

function Square.create()
    local square = Square.new()

    return square
end

function Square:ctor()
    self.visibleSize = cc.Director:getInstance():getVisibleSize()
    self.x = cc.Director:getInstance():getVisibleOrigin().x
    self.y = cc.Director:getInstance():getVisibleOrigin().y
    self.schedulerID = nil
end

在其他文件中调用 Square.lua

local r = require("Square")
local square = r.create()
print("square = "..string.format("%s",square))
点赞
用户1009479
用户1009479

要么在文件底部返回模块表:

return Square

要么直接将模块表分配到package.loaded中:

package.loaded[...] = M

在我看来,第一种方法更加清晰。

2014-08-21 03:33:54