Lua:尝试调用全局函数'rectangle_draw'(一个空值)

我有两个Lua文件,其中一个是main.lua

require "player"
require "level"

function love.load()

end

function love.draw()
    rectangle_draw()
end

另一个称为player.lua

function rectangle_draw()
    love.graphics.setColor(223, 202, 79)
    love.graphics.rectangle("fill", 20, 20, 32, 48)
end

如你所见,我试图在love.draw()函数中使用rectangle_draw(),希望它能在特定位置之类的地方画一个矩形等等,但无论何时我尝试运行我的小程序,我都会收到这个错误:

尝试调用全局变量'rectangle_draw'(一个空值)

Traceback

main.lua:9: in function 'draw'
[C]: in function 'xpcall'

我做错了什么?

点赞
用户828255
用户828255

你没有从player.lua中导出任何函数。正确的方式应该像这样:

player.lua

local M = {}

function M.rectangle_draw()
    love.graphics.setColor(223, 202, 79)
    love.graphics.rectangle("fill", 20, 20, 32, 48)
end

return M

main.lua

local player = require "player"
require "level"

function love.load()

end

function love.draw()
    player.rectangle_draw()
end

请参见Lua手册中这个章节,以及Lua用户Wiki上这个页面关于模块和require的更多信息。

2013-11-29 12:30:33