LUA脚本组件系统----让LUA成为C++的子集
零 简介
我们知道C++是一门静态编译执行的语言,其运行效率较高,并且从语法上支持面向对象,但和所有静态语言一样,当类定义好后在运行时就无法改变了,除此之外,c++的语法较复杂,学习代价比较高。
脚本语言LUA是一门动态语言,虽然在普遍情况下运行效率没有c++高,但其运行时可以动态的调整代码,给流程控制提供了很大的灵活性。拥有自动内存管理等特性也使其学习成本较低,使快速原型开发成为可能。
在游戏开发中,一般会用C++来开发游戏引擎的图形渲染,场景管理和物理碰撞等核心部分,而用LUA脚本来完成复杂的逻辑和流程控制。
本文的目的在于实现一种方案从而使LUA和c++紧密地结合在一起,让lua看起来就像是c++的一个子集一样.
本文分为七个部分,第一部分会通过一个代码实例来简要的了解脚本组件系统设计思想.第二部分介绍脚本组件系统产生的背景、动机与意图。第三部分介绍系统相关的基本理论。第四部分通过一个假想的需求实例来进一步说明脚本组件系统的功能和优点。第五部分描述系统的定义和特性。第六部分给出系统的实现方法和相关代码。最后部分给出一个使用脚本组件系统实现连连看游戏的实例。
一 脚本组件系统的轮廓
除了语法细节外,我们希望LUA和C++一样可以用来描述相同的对象,也就是说一个对象的一部分可以用c++来描述而另一部分可以用Lua来描述;更通俗一点讲,一个对象的成员变量和函数可以被任意划分放到C++和LUA中,而在使用上没有任何分别.
以对象”圆”为例子用代码来说明,我们可以这样来描述
一个shape.h描述了圆的形状属性,形状可以被绘制出来
Shap.h
LUA与C++结合:构建脚本组件系统

本文探讨将LUA作为C++的子集,用于游戏开发中的逻辑和流程控制。通过脚本组件系统,允许LUA与C++混合定义对象,使得对象的成员变量和函数可在两者间自由分配,实现无缝使用。文中以圆为例,展示了如何在C++和LUA中定义,并在测试脚本中统一调用。系统实现涉及动态语言与静态语言的结合,提供了一种新的编程模式。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



