我有两个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'
我做错了什么?
答案 0 :(得分:3)
您没有从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手册的this section和Lua用户wiki上的this page,了解有关模块和require
如何工作的更多信息。