Love2D 渲染器错误

我正在跟随一个教程,学习如何制作一个平台游戏。在第二个教程中,我们开始制作一个渲染器。每当我运行代码并测试渲染器时,我都会收到以下错误:

    Error: main.lua:24: attempt to index global 'renderer' (a nil value)

我不知道如何解决它,所以这是我的代码。

renderer.lua

    local Renderer = {}
    local num_of_layers = 5
    local insert = table.insert
    local remove = table.remove

    function Renderer:create()

      local renderer = {}
      --
      renderer.drawers = {}
      for i = 0,num_of_layers do
        renderer.drawers[i] = {}
      end
      --
      function renderer:addRenderer(obj, Layer)
        local l = layer or 0
        insert(self.drawers[l], obj)
      end
      --
      function renderer:draw()
        for layer = 0,#self.drawers do
          for draw = 0,#self.drawers[layer] do

            local obj = self.drawers[layer][draw]
            if obj ~= nil then
              obj:draw()
            end
          end
          end
        end
      return renderer
    end
    --
    return Renderer

这是main.lua

    local Renderer = require("libs/renderer")

    Renderer = Renderer:create()

    function love.load()

      love.graphics.setBackgroundColor(255, 255, 255)

      --装载类
      player_load()
      --装载类

    end
    --
    function love.update(dt)

    end
    --
    function love.draw()

      renderer:draw()

    end

感谢所有阅读的人!

点赞
用户5675002
用户5675002

Lua 是区分大小写的。

Renderer = Renderer:create()renderer = Renderer:create() 不同。

2016-01-15 15:29:24