3

我有两个 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

如您所见,我正在尝试使用函数rectangle_draw()内部love.draw(),希望它在特定位置绘制一个矩形等,但是每当我尝试运行我的小程序时,我都会收到此错误:

attempt to call global 'rectangle_draw' (a nil value)

Traceback

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

我究竟做错了什么?

4

1 回答 1

3

您没有从player.lua. 正确的方法是这样做:

播放器.lua

local M = {}

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

return M

主程序.lua

local player = require "player"
require "level"

function love.load()

end

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

请参阅Lua 手册的这一部分,以及 Lua 用户 wiki 上的此页面,了解有关模块和require工作方式的更多信息。

于 2013-11-29T12:30:33.963 回答