【发布时间】:2014-08-06 18:37:10
【问题描述】:
我正在为我的游戏引擎编写脚本层。目前我正在使用一个脚本作为一个类,向名为 new 的“表”添加一个方法。这个函数基本上创建了类的实例化副本。当需要脚本实例时,我会从 C API 调用此函数。
function PlayerController:new(o)
print('A new instance of the PlayerController has been created');
o = o or {}
setmetatable(o, self)
self.__index = self
return o
end
我的问题是:如何获取上述 Lua 代码,并将其移动到 C 中,这样就不需要将其添加到我为该系统编写的每个脚本文件中?
【问题讨论】:
-
坏主意。为什么不能只使用 lua 脚本(可能会调用其他脚本)来初始化 lua 状态并将主机提供的任何功能放入适当的 Lua 类中?这更容易编写、更容易维护和更容易扩展。也不应该损害性能。
-
另外,考虑使用调用元方法来定义类和实例化它们。
-
我不确定我是否遵循。另外,为什么以编程方式向我的每个脚本添加“新”方法是个坏主意?只是好奇。另外,我正在研究元方法。
-
坏主意,因为这在 Lua 中要容易得多。一个好的框架(10 分钟来构建你自己的基本框架,自然地在 Lua 本身中)应该主要消除对
new-function 的需求。 -
我建议您使用许多 Lua OOP 框架之一,例如 LOOP。
标签: c oop scripting lua lua-api