【问题标题】:Lua: attempt to call global 'rectangle_draw' (a nil value)Lua:尝试调用全局“rectangle_draw”(一个零值)
【发布时间】:2013-12-15 09:04:33
【问题描述】:

我有两个 Lua 文件,其中一个是 ma​​in.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'

我做错了什么?

【问题讨论】:

    标签: function lua love2d


    【解决方案1】:

    您没有从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
    

    ma​​in.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 工作原理的更多信息。

    【讨论】:

      猜你喜欢
      • 2013-03-28
      • 1970-01-01
      • 2020-08-02
      • 1970-01-01
      • 1970-01-01
      • 2018-07-11
      • 2014-05-06
      • 2019-09-06
      • 1970-01-01
      相关资源
      最近更新 更多