main.lua:45:尝试索引全局 'heroClass'(一个零值)堆栈回溯:main.lua:45:在主块中
main.lua:45: attempt to index global 'heroClass' (a nil value) stack traceback: main.lua:45: in main chunk
我是新手,正在尝试从子类 heroClass 中创建一个新英雄
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 中创建一个新的 CharacterClass 时,它工作得很好,但是当我尝试创建一个新的 heroClass(子类)时,我收到错误!
有人知道怎么了吗?谢谢!
修改你的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
文件。这就是导致错误回溯的原因。
我是新手,正在尝试从子类 heroClass 中创建一个新英雄
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 中创建一个新的 CharacterClass 时,它工作得很好,但是当我尝试创建一个新的 heroClass(子类)时,我收到错误!
有人知道怎么了吗?谢谢!
修改你的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
文件。这就是导致错误回溯的原因。