我在使用元表为游戏创建新怪物时遇到问题,我可以创建一个精确的副本,但我无法生成新的老鼠或蜥蜴,例如使用新的 id。
local monsters = {
rat = {
name = "a rat",
id = 1,
health = 5,
}
lizard = {
name = "a lizard",
id = 1,
health = 8,
}
}
local metamonsters = {__index = monsters}
setmetatable(monsters, metamonsters)
function monsters:new(o)
setmetatable(o, metamonsters)
return o
end
local testrat = monsters:new({rat})
print(testrat.name, testrat.id)
这会在变量 testrat 下创建一个新老鼠,控制台会打印“a rat”和“1”。我不知道如何在创建老鼠时为其指定新的 ID 号。任何帮助将不胜感激,元表让我疯狂!