用于学习与C++一起使用的Lua资源?

3

我听说Lua是一种很好的脚本语言,可以与C++结合使用。有没有人知道一些好的资源,可以帮助有很多C++经验的人学习它呢?


这个网站提供有关于集成Lua和C++的信息,似乎与Lua 5.2兼容,而Lua 5.2相对于Lua 5.0做了一些更改。http://www.troubleshooters.com/codecorn/lua/lua_c_calls_lua.htm - Richard Chambers
这里有一个代码项目示例,尽管它使用了较旧的Lua接口调用,但它可能会有所帮助。http://www.codeproject.com/Articles/11508/Integrating-Lua-into-C - Richard Chambers
3个回答

9

如果你需要将C++与Lua集成,可以考虑使用toLua++或Luabind。

关于学习Lua本身,Programming in Lua书籍或Lua参考手册应该不会超出你的能力范围;请查看lua网站的文档部分。

通常的规则是:在开始时阅读大量其他代码。如果你感兴趣,可以查看《魔兽世界》插件等(尽管这是一些专业化的真实世界示例)。

并听取社区的意见:订阅一些邮件列表,查看lua-users资源(特别是维基百科)等。

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

  • 你需要在创建和销毁Lua环境(lua_State实例)之间做出选择,或者保留一个或多个环境;摆脱它们可以缓解内存问题并提供干净的执行环境。
  • 利用lua_pcall注册调试函数的能力,参见Gamedev.net上的讨论
  • 如果你有内存预算,请考虑使用lua_setallocf来更改分配器行为——将其限制在自己的内存区域内以防止碎片,并利用更高效的小对象分配器(例如boost::pool)来减少开销(其他想法在早期答案中)。
  • 获取一个好的Lua-aware编辑器;我们在工作中经常使用SciTE和Crimson Editor。
  • 注意垃圾收集器,使用不同参数调用gc并查看哪种方法最适合您的性能和内存需求;我们曾经有过每帧完整gc是正确选择的游戏,也有过每帧10%是正确选择的游戏。
  • 当你感到舒适时,可以尝试元表;修改indexnewindex对我们特别有用。
  • 哦,协程很性感。

1

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接