我有这个。
components=require("components")
entity={}
--test---
function entity.test(x,y)
self ={}
self.id="test"
--self.position=components.position(x,y)
return self
end
return entity
主要我有这个。
entities=require("entity")
function love.load()
test1=entities.test(100,200)
print(test1.id)
end
输出正常,但是,当我添加另一个组件时。
components=require("components")
entity={}
--test---
function entity.test(x,y)
self ={}
self.id="test"
self.position=components.position(x,y)
return self
end
return entity
并进行其他打印
entities=require("entity")
function love.load()
test1=entities.test(100,200)
print(test1.id)
print(test1.position.y)
end
我首先得到一个nill评估者,然后由于字段位置为nill而出错。发生什么事?预先感谢。
我的component.lua
component = {}
--position--
function component.position(x,y)
self={}
self.x=x
self.y=y
return self
end
return component
答案 0 :(得分:2)
您可以通过声明变量local
来解决此问题,例如local self = {}
。
调用entity.test
时,该函数将新表分配给全局self
。然后,它将调用components.position
,这会向self
分配一个新表,而该表永远不会获得position
字段。