我一直在研究一个简单的基于组件的 c++ 和 lua 游戏引擎。目前所有的子系统,如音频和物理,都可以从 lua 调用,并使用luaL_newlib
.
我遇到的问题是 lua 脚本如何调用函数来修改其实体。LikeSetPosition()
显然需要在实体实例而不是静态函数上调用。那么有没有办法让我拥有这些实例化的功能。
我的一个想法是每个实体都为自己注册函数,并使用它唯一的模块名称。所以它看起来像entity1.Setposition
和entity2.Setposition
。是否可以注册,有效地复制这样的功能?
或者是否有另一种方法可以拥有这样的实例化函数,以便组件可以修改它们所属的实体?
如果我对自己的解释很糟糕,请务必说出来,我很乐意提供更多信息