Ошибка в вызове функции self?

Я написал этот код:

Editor = {
  x = 10,
  y = 10,
  interpreter = nil,
  cursor = nil
}

-- Some code here

function Editor:drawValues(w, h)
  for x = 0, w - 1 do
    for y = 0, h - 1 do
      local _x = self.x + x * CELL_SIZE
      local _y = self.y + y * CELL_SIZE
      love.graphics.print(self.interpreter.grid.cell[x][y], _x, _y) -- ERROR THIS!
    end
  end
end

function Editor:draw()
  local w = self.interpreter.grid.width
  local h = self.interpreter.grid.height

  Editor:drawGrid(w, h)
  Editor:drawValues(w, h)

  -- Its Works VVVVVVV
  -- for x = 0, w - 1 do
  --   for y = 0, h - 1 do
  --     local _x = self.x + x * CELL_SIZE
  --     local _y = self.y + y * CELL_SIZE
  --     local value = self.interpreter.grid.cell[x][y]
  --     love.graphics.print(value, _x, _y) -- self.interpreter.grid.cell[x][y]
  --   end
  -- end
end

return Editor

функция Editor:draw звонки Editor:drawGrid и это работает, но звонит Editor:drawValues(w, h) выдает ошибку:

попытка индексировать поле "интерпретатор" (нулевое значение)

Но! Если я прокомментирую Editor:drawValues(w, h) и раскомментируйте код ниже, это работает. Зачем?

Извиняюсь за мой английский.

0 ответов

Другие вопросы по тегам