如何使用Lua来整合C++的功能模块基础上创建新的命令

如何使用Lua来整合C++的功能模块基础上创建新的命令

Lua与传统脚本语言的不同之处在于它是一种胶水语言。 通用脚本语言用于控制重复任务的执行,而易于集成的语言则允许用户集成其他语言开发的功能。 这让脚本程序员有更多的发挥空间,而不仅仅是执行命令。 程序员可以使用该脚本根据底层语言开发的功能模块创建新命令。 本书将探讨如何使用Lua集成C++的一些游戏相关功能音效,如GUI、AI、数据等。

Lua本身是一种简单但功能强大的编程语言,允许脚本程序员进行大量处理。 该语言具有强大的字符处理和数学功能、您可以快速熟悉的灵活数据类型以及定义函数的能力。 但是,如果没有集成来自其他环境的组件的“魔力”,这些基本功能就会丢失。 (是的,你可以在命令行执行Lua脚本并查看结果材质材料,但是除了学习语言本身之外,命令行输出对于游戏开发没有实际意义。)学习其他经典编程语言的第一个教训是如何输出“你好世界”。 Lua版本参见代码清单21。

代码清单2-1 用Lua编写的“hello world”程序

image

Lua 非常适合作为更强大的低级编程语言(例如 C++)的伴侣。 Lua可以让游戏开发者快速构建游戏原型甚至完成游戏。 游戏开发者无需程序员的帮助即可构建完整的图形界面。 它还可以用来管理游戏进度文件的保存和加载,并且易于阅读和调试。 在游戏开发领域,Lua可以帮助开发者构建高效便捷的验证游戏创意的环境。

根据开发Lua的团队的描述,Lua是一个可以集成到应用程序中的“语言引擎”。 它本身就是一种编程语言,同时它还提供了很多可以与应用程序交换数据的API(应用程序编程接口)。 另外,Lua还可以通过集成C++模块来扩展其功能(这就是我们之前所说的“集成”功能)。 当与编程语言(如C++)结合使用时,Lua还可以作为特定项目的框架语言。 这种易于扩展的特性使得 Lua 非常适合作为游戏开发环境。

Lua作为一种独立的编程语言(在运行窗口中执行),功能非常有限,只能作为教学工具。 (我们将在后面的章节中使用控制台来学习该语言。)Lua 只有在集成到其他语言中时才有价值。 它的实现非常简单。 它只能通过一些LuaGlue函数与底层语言进行通信。 基于用户自定义的LuaGlue函数,它可以进一步扩展,甚至成为一种新的编程语言。

2.2.1Lua的历史

Lua 在葡萄牙语中的意思是“月亮”,由巴西天主教大学于 1993 年开发。 该语言由计算机图形技术组 (Tecgraf) 的团队(Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo)开发,并作为免费软件分发。 Lua开发团队的目标是开发一种小型、高效、并且能够与C语言良好配合的编程语言。 在脚本语言领域,Lua是最快、最高效的脚本语言之一,因此它有资格作为游戏开发的替代语言。 Lua的内核小于120KB(Python的内核约为860KB,Perl的内核约为1.1MB)iphone游戏开发实践指南,使其在编译并集成到游戏开发系统中时非常紧凑。 Lua 通常比流行的游戏开发脚本语言 Python 运行得更快。 完整的性能测试报告可以在计算机编程语言实用性能测试网站(aliothdebianorg/)上找到。

计算机图形技术集团 (Tecgraf) 成立于 1987 年,致力于开发和维护用于技术和技术领域的计算机图形和用户界面。 除了Lua之外,Tecgraf团队还开发了IUP(一种用于开发用户界面的系统)、CanvasDraw(一种跨平台图形库)、TWF(一种网页图形文件格式)等系统。 读者可以访问相关网站了解更多信息。

2.2.2Lua授权

Lua是免费的开源软件,可以免费用于科学研究和商业应用。 有关开源软件的更多信息,请访问 wwwopensourceorg。

对于游戏开发专业人士来说,许可费用对开发技术的选择有重大影响。 通常,对于一个项目来说,游戏引擎的预算会超过50万美元,中间件技术的成本在5000美元到5万美元之间。 因此,开源软件对于开发团队来说非常有吸引力。

因为开源软件本身并不盈利,所以它们的代码通常有很多bug,并且由于注释不多而难以理解。 另外,没有人支付技术支持费用,所以没有技术支持。

Lua 避免了这些问题。 它很小,实现简单(并且仍然维护)iphone游戏开发实践指南,并且代码简洁明了。 Lua的开发团队由具有计算机工程背景的专家组成,并不断关注其升级。 与其他开源项目不同,Lua 的设计目的是在项目内部而不是 API 层面扩展功能,因此其核心始终保持稳定。

Lua许可的精神是用户在任何情况下都可以免费使用,不需要获得版权人的许可。 如果用户想了解更多关于Lua授权的信息,可以访问。

完整的Lua 50许可证如下(也以CDROM形式提供):

image

文章来源:https://developer.aliyun.com/article/174122