【问题标题】:main.lua:45: attempt to index global 'heroClass' (a nil value) stack traceback: main.lua:45: in main chunkmain.lua:45: 尝试索引全局 'heroClass' (一个 nil 值) 堆栈回溯: main.lua:45: in main chunk
【发布时间】:2015-04-07 17:51:38
【问题描述】:

我是新手,正在尝试从子类 heroClass 中创建一个 NEW HERO

CharacterClass.lua 中的代码:

local CharacterClass = 
{
 name = " ",
 hp = " ",
 velocity = " ";
}


function CharacterClass:new(o, nameCharacter, hpCharacter, velocityCharacter)
  local o = o or {}
  setmetatable( o, self )
  self.__index = self 
  self.name = nameCharacter
  self.hp = hpCharacter
  self.velocity = velocityCharacter

  return o
end

-- CREATING HERO INHERIT

local heroClass = CharacterClass:new()
function heroClass:new (o, name, hp, velocity, playerId, color)
  local o = o or CharacterClass:new(o, name, hp, velocity)
  setmetatable(o, self)
  self.__index = self

  return o 
end

main.lua 中的代码

local CharacterClass = require( "CharacterClass" )

local heroClassMain = heroClass:new()

运行代码后出现此错误

main.lua:45: attempt to index global 'heroClass' (a nil value) stack traceback: main.lua:45: in main chunk 

PS:当我在 main 中创建一个 NEW CharacterClass 时,它可以完美运行,但是当我尝试创建一个 NEW heroClass(子类)时,我收到错误!

有人知道怎么回事吗?谢谢!

【问题讨论】:

    标签: lua coronasdk


    【解决方案1】:

    修改你的CharacterClass.lua如下:

    local CharacterClass = {
      name = " ",
      hp = " ",
      velocity = " ",
    }
    
    function CharacterClass:new(o, nameCharacter, hpCharacter, velocityCharacter)
      -- same as before
    end
    
    -- CREATING HERO INHERIT
    
    local heroClass = CharacterClass:new()
    
    function heroClass:new (o, name, hp, velocity, playerId, color)
      -- same as before
    end
    
    return {heroClass = heroClass, CharacterClass = CharacterClass }
    

    现在,当您在 main.lua 中使用 require 时,还需要做一些事情:

    local classModule = require "CharacterClass"
    local CharacterClass, heroClass = classModule.CharacterClass, classModule.heroClass
    local heroClassMian = heroClass:new()
    

    以前,您的 heroClass 子类未提供给 main.lua 文件。这就是导致错误回溯的原因。

    【讨论】:

      猜你喜欢
      • 2020-10-30
      • 2018-09-17
      • 2017-04-22
      • 2019-05-07
      • 2013-08-29
      • 2021-04-26
      • 2017-04-08
      • 1970-01-01
      • 2019-03-01
      相关资源
      最近更新 更多