Lua: attempt to call global 'rectangle_draw' (a nil value)
function, love2d, lua
Solution
You are not exporting any functions from `player.lua`. The correct way would be to do it like this:
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
Please see this section of the Lua manual, and this page on the Lua users wiki for more information about how modules and `require` work.
Problem
I have two Lua files, one of which is main.lua: ``` require "player" require "level" function love.load() end function love.draw() rectangle_draw() end ``` and another called player.lua: ``` function rectangle_draw() love.graphics.setColor(223, 202, 79) love.graphics.rectangle("fill", 20, 20, 32, 48) end ``` As you can see, I'm trying to use the `rectangle_draw()` inside of `love.draw()` function, hoping it to draw a rectangle in specific location etc etc, but whenever I try to run my little program I get this error: ``` attempt to call global 'rectangle_draw' (a nil value) Traceback main.lua:9: in function 'draw' [C]: in function 'xpcall' ``` What am I doing wrong?