【问题标题】:Resource for learning Lua to use with C++?学习 Lua 以与 C++ 一起使用的资源?
【发布时间】:2010-12-04 20:33:05
【问题描述】:

所以我听说 Lua 是一种与 C++ 相关的优秀脚本语言。对于具有丰富 C++ 经验的人,有谁知道一些很好的资源来获取它?

【问题讨论】:

标签: c++ lua


【解决方案1】:

首先看到http://www.lua.org/manual/5.1/manual.html#3。 集成 Lua 和 C++ 非常容易。但对于大型程序,我建议使用 swig。

【讨论】:

    【解决方案2】:

    您可能想查看 toLua++ 或 Luabind 以进行 C++ 集成。

    就学习 lua 本身而言,《Lua 编程》一书甚至《Lua 参考手册》都不应该超出你的范围;请参阅 lua 网站的 documentation 部分。

    通常的规则适用:开始时阅读大量其他代码。如果这是你的一杯茶,你可以例如去挖掘魔兽世界的一些插件(当然是专业的)真实世界的例子。

    并听取社区的意见:订阅一些邮件列表,查看lua-users resources(尤其是 wiki)等等。

    我在一家游戏开发公司工作,我们主要同时使用 C++ 和 lua。我们实际上还没有使用 Luabind 或 toLua++(主要是缺乏时间来测试和集成它们),但我们学到了一些东西:

    • 您需要在按需创建和销毁 lua 环境(lua_State 实例)和保留一个或多个环境之间做出选择;摆脱它们可以缓解内存问题并提供良好的无污染执行环境
    • 利用 lua_pcall 注册调试函数的能力,见discussion on Gamedev.net
    • 如果您的内存预算有限,请考虑使用lua_setallocf 更改分配器行为——将其限制在自己的内存区域以防止碎片,并利用更高效的小对象分配器(也许是 boost::池)以减少开销(earlier answer 中的其他想法)
    • 得到一个好的lua-aware editor;在我工作的地方,我们经常使用 SciTE 和 Crimson Editor
    • 请注意您的垃圾收集器,使用各种参数调用 gc 并查看最适合您的性能和内存要求的方法;我们有一些游戏,每帧全 gc 是正确的选择,而其他游戏每帧 10% 是正确的选择
    • 当您感到舒适时,请联系metatables;事实证明,更改 indexnewindex 对我们特别有用
    • 哦,coroutines 很性感

    【讨论】:

      【解决方案3】:

      这些可能会让您知道从哪里开始。 Lua C 库在将您自己的 C++ 代码混入 Lua 虚拟机等方面比您预期的要低级一些,但还是看看这些吧。

      http://csl.sublevel3.org/lua

      http://www.codeproject.com/KB/cpp/luaincpp.aspx

      http://heavycoder.com/tutorials/lua_embed.php

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-25
        • 1970-01-01
        • 2011-09-23
        • 1970-01-01
        • 1970-01-01
        • 2011-05-30
        • 2011-07-18
        • 2010-10-04
        相关资源
        最近更新 更多