所以最近,我在我的C ++引擎中实现了lua脚本,并且我为几乎所有的类(Window,InputHandler,Mesh,Shader等等)创建了一个lua包装器。但是现在我正在考虑它,将所有C ++类包装到lua类中是否很好?我不应该使用lua脚本来处理更具体的事情,并编写像C ++中的窗口管理这样的代码吗?这是一个lua样本:
local input = alpha.InputHandler()
local window = alpha.Window(100, 100, 1000, 900, "Hello Gangnam Style !", false, false)
function main()
repeat
window:Clear(0.5, 0.5, 0.5, 1)
window:SwapBuffers()
input:Update()
until input:CloseRequested() == true
end
main()
答案 0 :(得分:2)
这实际上取决于您的需求和背景。
你卖掉引擎了吗? 您是否希望买家访问Lua脚本或仅用于调试/原型设计?我发现将所有内容绑定在Lua中非常方便,因为我可以快速创建新功能的原型。虽然有时候它可能是一个非常常的解决方案,但对于低级功能,我会切换回c ++。
如果您计划让最终用户使用Lua脚本,您也可以对其进行沙箱化,为用户提供白名单功能的子集。 http://lua-users.org/wiki/SandBoxes