首页 文章

Corona SDK / Lua无法使用外部模块

提问于
浏览
0

我最近开始使用Corona SDK在Lua中编程来制作应用程序而我无法使用main.lua来使用menu.lua的功能 . 我一直在收到错误 . 这是我的代码 . 谢谢你的时间 .

--main.lua--
    local menu = require( "menu" )
    menu.backgroundStart()

    --menu.lua--
    local transition = require("transition")

menu = {}
backgroundStart = function (  )
    local background = display.setBackground( 0, 0, 0)
    animationStart();
end

animationStart = function ()

    local pixelRadius = 5
    local xCenter = math.random(0, display.contentWidth)
    local yCenter = math.random(0, display.contentHeight)
    local whiteCircles = display.newCircle( background, xCenter, yCenter, pixelRadius )
    whiteCircles.setBackground(255,255,255);
    transition.fadeIn( whiteCircles, { time = 200, delay = 10 } )
end
return M;
end

我得到的错误有这样的文字:错误加载模块'menu'来自文件'menu.lua':menu.lua:24''预计在'end'堆栈追溯附近:C:在函数'require'?:in function'要求'main.lua:6在主要块中你想重新启动项目吗?

2 回答

  • 0

    问题不在于Corona或使用外部模块 . 如错误消息所示( error loading module 'menu' from file 'menu.lua': menu.lua:24 '' expected near 'end' ),问题出现在 menu.lua 的第24行,这意味着文件已正确加载 . 我的猜测是你在第24行还有一个 end 语句,这会产生 '<eof>' expected near 'end' 消息(并且 <eof> 在某处被删除) .

    修复(和任何其他)问题,您的模块应该正常加载 .

  • 0

    首先,您不需要转换,它包括在内 . 任何方式你必须将你的功能添加到你正在返回的表中:

    menu = {}
    menu.backgroundStart = function (  )
    

    menu.lua的最后一行应该是

    return menu
    

    然后,当您需要该模块时,代码将执行并返回菜单表,而在main.lua中,您现在可以访问这些函数 .

    您在menu.lua模块的末尾有一个额外的结尾,您不需要 .

相关问题